The package being deleted, and deleting the mob, is going to cause issues so what I propose is that instead of putting all the code which ejects the contents in the attack_hand(), you instead put it in Del(). (Then just put a del(src) in attach_hand) Now the advantage with this is that it will always eject its contents and the issue shouldn't pop up again.

Another thing to consider is how to do this. I would recommend looping through with a for each loop.

>for(var/atom/movable/AM in contents)
>     AM.loc = get_turf(src)