How do I keep previous changes to a level upon loading?

Saving just the players position is often not enough, you need to be saving the position of enemies, items, events etc etc.