Gemini keeps doing what it should not do!

So I created an App that helps me build C# applications. One of the tasks I have given it is to take a list of 95 domain names that I have and create a JSON file with fictional companies by grouping similar domain names together. Then make up a company name for this group. This works fine. I get a list of company names with a fictional description and each has a group of domain names.
I then tell it to generate a users.json file with a hundred users. This is to seed my database with demo data. This database needs to have a Guid ID, first and last names of users, gender, birth date, email address and, matching the email address, a company name. And yes, the email addresses must be from that list of domain names.
This works, except the AI decided to simplify my domains.json file to just have the company name and description. And it added various other company names. So I need to roll back and try again.
And again…
And again…
Well, you can see where this is going. It keeps messing up the domains.json file or the users.json file. I need over a hundred fictional users to populate my database for a demo project. But it either destroys the structure of the domains or the structure of the users. For example, one time it reduced the number of users to just two users. Another time it decided that gender and birth date don’t matter. And occasionally it will add domains that aren’t listed. Or companies that don’t exist. Or it messes up the names and replacing them with “Jane Doe 1”, “Jane Doe 2”, etc. Or makes them all Korean… Sigh
Fortunately, I can lock files, so domains.json is now locked in my app, and Gemini can’t change it. It had read-only access now. Yet after 60 minutes of trying to get good seed data for my database, I still have flawed user data.
This should be a simple task, but if I had not locked domains.json, then the AI would keep destroying that file also. But now it only keeps destroying my users.json file for some reason. It never listens to my instructions but does what it thinks best.
And yes, I provide it a list of domain names to use and it keeps making up new names that aren’t part of this list. No matter how strongly I indicate that it has to be restricted to this list…