I think it's because of how you're saving and loading the game from different slots in your system. The save game function saves and loads the entire game (everything including variables), so loading is wiping any changes you've done. Buying something in the upgrade layout, changing a global variable, and then loading an older save to exit the upgrades, will effectively set the global variable back to what it was in the first place.
An easier way out could be to keep the upgrade menu inside the game layout (perhaps as a global layer) that you turn on and off when you want to buy stuff. Setting timescale to 0 will pause any monster action going on in the background.