Why do you even bother with using modUserData? From what I see in the code, it basically spawns 1 fig in a random eligible plot. Once it is done, you register it, so it will not spawn again. So, basically each Latifundium will eventually spawn 1 fig or zero. And since they are always adjacent, then it is really easy to check if there's already a fig in an adjacent tile. No need to store anything, no sync problems.Almost. You need to wait for the figs to spawn. Then reloading will cause figs never spawn again for that one latifundium. In your case there's no problem. You can test it easily. Just save game after building laifundium, wait for figs spawn, load game, wait for figs again and wait and wait forever. You will see the moment where Figs should Spawn by blinking Latifundium model on map right after click next turn. This moment is upgrading improvement.
Mechanics work like this: