If you want to have the weapons visible, you should let them their sniper, use
tf2attributes and strip all the attributes from their sniper, giving you a stock sniper to work from. And then reuse tf2attributes, to apply the attributes you want.
And you should also add a check for the class name "tf_weapon_sniperrifle_classic" and "tf_weapon_compound_bow", and then give them a stock sniper and change their attributes. (Only those players will have an invisible sniper)
__________________