Id make the weapons different active object with the same hotspots as the main character object, then put the weapons in different groups and activate/deactivate when required. Then again I cant program so Ill probably be told off in a moment for suggesting a silly method
In my latest game the character wears a purple handbag. To do this I cloned the character sprite and drew the handbag on top the cloned-objects frames, then scribbled over the remaining character with invisible, leaving just the hangbag.
It works perfectly, he looks like a transexual but hey!
make an active object the you will call "the REAL player" make him invisible, and make HIM have all the control and movement. Make him invisible.
Then make an active object called "MASK player" this is the player that we will see, but not really the one we are moving around. make him always position himself to the "REAL player", and always have the "REAL player"'s animations that when you are moving the Real one, the mask is doing a walking animation and appear to be walking.
after this is done do the same to the object that will come allong with the Mask player (e.g. Gun/Handbag/"anything") and make it always position it'self to the "REAL player".
Now that should make it be always in place and not lag behind the character.
and there you have it.
Profile edited as it messed the layout of the site up.