Erm.. okay.. Never seen the snippet in my life so time for some guesswork.
The lag on saving is probably because you are talking about a large number of objects (a 1000 though.. hrm..), this'll just be simply the sheer amount of disk I/O it has to perform (I've managed to generate a 59Meg pfile once due to badly setup linked lists before Although this save lag may be more down to how the objects are stored because...
..the load routine is complaining about what seems to be loading the same object over and over, into the same equip location with the same layer, same status etc.. So while they are duplicates they appear to be trying to be EXACTLY the same object (same wear loc for example, thus the already equipped message).
If you are storing the locker with the pfile (which makes sense) and reloading the information, is this information being tied into the inventory list? is it being linked in properly? Is something nasty like a circular entry in the list being created? (Its possible, only takes a small typo with the loop being broken by some form of prevention mechanism (I dunno if you have one built in, or whatever..).
I'd flush the pfile of all objects (locker and not so) and try to reproduce the problem. Watching how the object lists save and load and see if the logic is alright.
This is all conjecture based on how I'd approach the problem, if you can point me towards the snippet I can prolly work something better out, unless someone else beats me to it