How to swap between several objects?
That's quite easy to do. You don't even need to use Python, you can do this with logic bricks, properties and messages. 

I've got an example .blend here: http://www.pasteall.org/blend/33896

Press P to start.
Change weapons with 1, 2 or 3 keyboard keys. Notice how the wepon is lowered, then changes, and then plays a setup animation. Right now all the weapons play the same animation, but you could make several different ones if you like and link those up.

I've done in a slightly different way than you requested. Instead of adding/removing weapon objects, I've used Replace Mesh to change the weapon, and a active weapon int property. I've found this to work better, and you don't need to worry about having the new weapon follow the character around this way.
You can check for this int and change behaviours for the different weapons (to add different bullets or whatever).

I don't quite understand you requests about a 'Primary' property, but you can add that yourself, no problem.

For actual shooting, just add a Shoot action with some weapon movement and an empty in front of the weapon to emit bullets. These things can be set up to listen to the active weapon and change their behavior. 

Hope this works out for you. These things are not really that hard once you get a hang of Properties and Messages. Cheers.