1) What you're seeing here is that some of libPlasma's header's have changed between builds; PrpShop will need to be re-linked when this happens, or it will cause the crashes you see. Sometimes I also make changes that will require libPlasma to be mostly rebuilt, but unfortunately I'm too lazy to get all of the header dependancy sorted out on the Linux and OSX makefiles, so doing a make clean when things break is usually the easiest way to fix that ^_^. The Windows project files will (usually) automatically rebuild dependancies though, so it's less of a worry.
Ok, that is about what I thought, too, but it took me a while to figure that out
2) I'm working on a key reference tracer script in Python (PyPlasma) which should help find those lingering key references. Unfortunately, there are still a lot of classes not exposed to PyPlasma, but so far it's working pretty well... For example, on the file you sent me, tracing the (deleted) audio interface produces this dependancy tree so far:
The output seems to confirm what I already feared - if you remove one object and everything it references to and is referenced by, you end up removing the whole prp file since the plSceneNode references each plSceneObject (and perhaps the other way round, too). Of course one could stop doing recursion when you hit a plSceneNode and just remove the reference to the plSceneObject you removed, but I'm not sure if hardcoding something like that is a good idea. I will test your script as soon as you think it can be released