Hi,
I am doing "persistence" for the first time in my current project, and I handled it like this:
the current world mm[] (map or whatever) is an array big enough to hold everything about a single location (one sector of space or one planet, etc.)
(all mine are 30x30, with 7 data elements for each tile)
when you leave an area, you save it to a file that can hold all that information.
monsters and items are saved in linked lists. the map references the monster or item instance.
mm[23,7].monster=7 ; mm[1,1].item=48
monsters and items are each defined on their own, with 30-40 characteristics.
I don't bother to save all the data about each item and monster. I save what "KIND" it is.... supplies, corona shield, pirate, space amoeba,
and when you re-enter the area, I re-generate all the stuff about the items.
there is no technical reason not to save the individual items and monsters, I just did it to keep my data files small (about 11k per area)
like I said, this is my first foray into persistence, and it works very well.
once you wrap your head around what's important, you'll get it.
[edit]
and yeah, if you want a monster to follow you , just cheat, and 'bring it with you' ... don't delete it when you change areas, and then place it near the stairs with you...