I fixed an oversight in the onTechAquired python code in my modmod based on your save. I'll upload the new version any moment now.
When revolutions happen a new civ is created, it gets a certain amount of techs awarded one after the other before it gets units or cities.
When python tries to give a free gatherer to the new civ due to it inventing the Gathering tech the code does not find a valid plot to place the gatherer in (no starting plot, capital, or pre-existing units is defined or exist for that civ, all things the python code checks when deciding what plot to place the new gatherer in), so it ended up asking the dll to create the gatherer in coordinates [-1, -1].
The dll never answers this request, so python thinks "WTH" and throws an error about an unspecified C++ error. The onTechAquired function will terminate prematurely but later python code will be completely unaffected by this incident.
This in itself did not trigger the crash, but later on, when the new civ declares war on the civ it revolted from, the game will crash due to what the dll did when it was asked to create a gatherer outside the map.