Why are variables that are exposed on spawn not replicating?

Is Weapon Type a String? You may need to set it on Event Begin Play instead of On Construct.