I think about the sprite with multi frames and pin it with your Player.
When you got new gun, just change its frame.
With ammo, your need to have an array that contain all of your guns ammo.
The frame of the gun will be the ID in array.
Then you will set Ammo = Array.At(Gun.AnimationFrame)