If memory serves, player.force.reset_technology_effects() is useful in this case. I'm a bit irritated that this has to be done in a migration script. I think these changes need to be handled in the game level since doing it in the mods requires doing it every single time a change is made. As an automation engineer, my mind just doesn't work that way. My own stubborn rebellion I suppose. I let them know a long time ago how I felt about that. I should probably just bite the bullet and add a script injector in my CD pipeline to put in the migration script every time.
Glad everything is working. Please consider the gameplay balance of the changes and let me know what you think. It's hard to know without doing a long playthrough. Really appreciate it, dude, and enjoy and be well.