[...]
Very interesting questions!
Concerning different types of weapons: An entity's stock weapons are stored in its hardpoints. For Rangers, that would be the M1A1 Carbine in hardpoint 1. This is the weapon every ranger entity will use, whether it is part of a Ranger squad or a weapon team (after recrewing). That is unless the squad has one or more slot items, like the Thompson, BAR, MG42 or Bazooka. These also usually go into hardpoint 1, replacing the stock weapon. If your Ranger squad picks up a BAR, one of the entities will use it instead of the Carbine, but the slot item is still "owned" by the squad and will not be carried over when recrewing a team weapon. (Although there is or at least was a bug with Conscript PPShs carrying over, I believe.)
Veterancy modifiers are a bit tricky. Every modifier has an application type (weapon, entity, squad, ability, ...) and is either permanent or not. Modifiers for accuracy, cooldown and such can also be applied to a specific hardpoint.
If we take a look at the Ranger squad's accuracy modifier at Vet 2, we have (roughly) this:
apply_modifiers_action
-permanent: True
-
accuracy_weapon_modifier
--application_type: apply_to_squad
--exclusive: False
--target_type_name: hardpoint_01
--usage_type: multiplication
--value: 1.2
That would mean: All of the squad's weapons in hardpoint 1 will have their accuracy multiplied by 1,2 - that includes the Carbine, Thompson, BAR, MG42 and Bazooka, because all of them go into hardpoint 1. This modifier is permanent (so it should be applied to newly reinforced squad members, I believe) and not exclusive (so it will stack with others).
I think the problem with the Tommy Pyrotechnics Supplies is the fact that its sight range modifier applies to the entities and has permanent: False. Not completely sure, though!
All of this is based on my experiences while working with the Attribute Editor, I didn't test it ingame. And obviously, I don't know how exactly Relic intended these things to work, and if everything is implemented correctly.
Someone please correct me if I'm wrong!