Leoreth, I raised the issue of Indian City Placement before, but this time I believe that I have a solution to offer along with the problem. As you know, I am against spawning so many cities in India and I'm pretty sure that you feel similarly but due to a lack of better solution are doing this (or atleast that is what i imagine):
-Lets start off with the cities I would not like to see preplaced:
1) Karachi
2) Peshawar
3) Hydrabad
4)Calcutta
The reasons are pretty obvious, Hydrabad was not founded until Mughal Era; Peshawar was
not a prominant city of its timeperiod and Karachi was
never ever a major city until 1947 when Muslims migrants from India made it into the metropolis that it is today. Calcutta was also founded later on by the British or the Mughals. But I have an idea which will ensure that these cities get founded atleast 90% of the time.
Screenshots of what I was able to acheive without preplacing Peshawar, Calcutta, Hydrabad and Daibul:

(On the map the city on the Indus is called Peshawar but in actuality it is supposed to be Lahore)
How I got here:
1) Lets start with the most important thing that needs to be done; start the Mughals in Lahore (the cityname is Peshawar but thats inaccurate) instead of Delhi in the 600 ad scenario. There is no way the Mughals will found either Daibul or Lahore if they start in Delhi. This is because the AI does not see the city favoribly anymore after it has Delhi and will likely expand in India proper instead. Starting them at Lahore is not only more accurate but also more logical. Once Delhi flips the next turn, you can change the capital for the AI that turn, (Human will do it on its own) it should take less than five lines code and to be honest its would be really minor and not messy. In effect Delhi will be to the Mughals what Constantinople was to the Turks in Vanilla RFC if you get what i mean.
Now I also understand that you have some concerns for Delhi not being founded in 3000 bc. These are legitimate and I understand the importance of Delhi so my idea for 3000 bc will be tied into another idea which I have been advocating for a long time but was overseen due to the fact that you were not working on Asia back then:
Spawn an independent Taxila (where you have Peshawar preplaced currently) in 800 BCE to represent the Gandharan Civilization of Pakistan-Afghanistan. Taxila was the center of Buddhist learning in the world, home of one of the first universities in the world and among the largest cities in antiquity; it also served as the capital of many conquering people including Persians (satrapy), Indians (local province), Greeks, Sythians and the Kushans. You can spawn the city with Buddhism and Zoroastarianism along with a library. Now back to the point of how this will tie in to my suggestion for the Mughals; you can rename the city to Peshawar after 500 ad and the Mughals can spawn in Delhi and flip Peshawar. This takes care of not one but two problems, the first one being that Delhi will not grow unchecked in 3000 bc and the second that there will always be one city in Pak even in 3000 bc, something that is not currently guaranteed. Having Peshawar in 3000 bc and Lahore in 600 ad will also bring diversity to the game just like how Italy has Milan in 3000 bc and Florence in 600 ad. If you still arent sure about adding Taxila consider the fact that it will serve as a buffer to Indian exploration, cultural and military expansion and it can also serve as a foothold and a territorial dispute for both India and Persia among other thus causing war and opportnities of expansion for and within the region.
Basically my first point summed up is that you spawn Mughals at Lahore in 600 ad since Delhi is guaranteed to be there. As far 3000 bc is concerned, spawn the Mughals at Delhi so that it gets founded but also add Taxila as an independent to make sure that there is a city around the Indus which will later be called Peshawar.
2) I Made some basic terrain changes that will encourage/ force the founding of Calcutta, Lahore and Hyderabad.
These include:

What I did here was:
1) Add the rice where the incense was previously thus blocking off that tile from settlement (the AI was quite fond of that tile so that was necessary).
2) Moved the Incense south east, which essentially made that tile unfavorable for the AI also thus no city is founded there in any of my tests.
3) Removed the Jungle from the cotton north of Calcutta because that tile is Calcutta too. While It is not the better of the two Calcutta tiles but it is not that bad either. Normally the AI will not found a city there (hasnt done so yet) because it is on a cotton but even if it does once in a while there is no harm in it. It will actually make the game a bit more different in a respect especially if im the British, that's all.
4) Added a jungle on top of the Iron, again the AI seems to like those two tiles. While the jungle does take away a few food but the rice more than makes up for it. Anyway I did take away a jungle near Calcutta so we can call it even.

This ones simple; put the sugar where the marble was and moved the marble north. (If you do decide to add Taxila, this change should only apply to 600 ad, not 3000 bc)
3) One of the obvious and overlooked reasons why Daibul and Calcutta were not being founded was because those tiles are surrounded by Independent Culture so the following things need to be done:
-Instead of giving Kanchipurum and Vijyanagara Hindu temples, give them Cathedrals (Mandirs) as they give more happiness leading to higher population but more importantly they spread less culture.
-The reason why Daibul was not being founded was because it was covered by Mumbai's culture. The only way around this is to
flip Mumbai to the Mughals as well. This is not that ahistorical as the Delhi Sultanate on multiple occasions conquered the region. But to make up for this,
I gave the other three South Indian cities a Castle and Longbowmen each.
-All preplaced cities except Mumbai start with a culture of 1; this mean thy there will normally have anywhere from 60 to 80 by the time the Mughals. The kEy here is that they do not have a culture of more than a hundred or else they will occupy vital tiles such as that of Calcutta or Hyderabad.
4) I know that I said this before but I checked the Mughal settler map and all it is is a copy of India's which is fine but
if Im right it is also the reason why many of the cities that you wanted were not being founded before. I mean Hyderabad has a value of 200 and so does Calcutta and Daibul. If you want them to be build, I would increase that value to something like 500 or even 1200 which is the value of Delhi.
5) You might have already noticed that although the other three cities are founded, Hyderabad is not present in any of my tests. I would have played around with the plots settler value but I cannot due to not being able to compile. If you change the plots value and it works out than thats great but if you cant; here is what i propose:
With my tests, there is some good news and some bad. The bad is obviously that Hyderabad does not get founded but the good news is that neither does any other city in a two tile radius (due to my terrain changes and Independent culture). This means that you can just spawn the city there in 1400 ad. I mean what is the point of having an ahistorical preplaced city that looks asthaically ugly and occupies vital tiles needed by other cities when you can just spawn it later on as a Independent city. So what you can do is, if there is no city in a two tile radius (which is the case 99% of the time) than Hyderabad is spawned as an independent city with 200 culture, 3-4 musketmen, walls, castle, Hindism and Islam and anything else you feel appropriate. This is quite historical as Hyderabad was founded by a general sent by the Delhi Sultanate to conquer the region and bring it in the sultanates domain. As his reward, he was made governor but he soon declare independence and established the Qutb Shahi Dynasy and made a fort near Hyderabad his capital, soon the city itself was established. In the game, The city can eventually be conquered by the Mughals but it will slow down their advance in the Deccan Plateau until atleast the 1600s which will be more historical as well as better for the gameplay. I do recommend that you do not spawn the city earlier than that because that might change the AIs inclination to found Calcutta.
Some other Minor Changes I had in Mind regarding the Mughals:
-Change the name of Mumbai to Pune; once the Mughals conquer it can be called Aruragabad Bombay whenthe Europeans conquer it.
-I often see Mughals vassalizing Khmer, this should not happen. I dont have a problem to Khmer vassalizing to the Chinese, Mongols or Indonesians but Mughals is too ahistorical. Im not even sure they had diplomatic contact.
-I might have upset your balance your balance on the Mughal conquest of Southern India by flipping Mumbai. I just wanted you to know that it starts in the 1400s and ends by the end of the 1500s to early 1600s. Just so you know if you do decide to include my changes; I think that this timeframe might be a bit too early so I wouldn't mind spawning some defenders or even musket men for the Indies in 1300 ad or even give them more preplaced longbowmen.
The changes that I made can be unzipped below in case you cannot replicate/understand them; I may have to warn you that they are pretty amateurish and dont cover most of the points I touched upon only a) map changes and city changes ( no preplaced of above cities, less culture, cathedrals instead of temple, more units for indies), Mughal flip includes Mumbai in Consts and 4 settlers for the Mughals in Rise and fall.