I suspect what's happening is the AI on sandbags are assigned a behaviour type of machinegunner and their turret assigned in Radiant (so technically, they keep their original weapon of MP40 or whatever). The guard towers tend to use the spotlight system (global/spotlight.scr) so their weapon is set as the actual MG42 entity in there (not actually the keyword of 'MG42'), which is just stupid and probably means it cannot be picked up as a weapon type.
This is the code in spotlight.scr
if (self.spotter.target)
{
self.spotter type_idle "machinegunner"
self.spotter type_attack "machinegunner"
self.spotter type_disguise "machinegunner"
self.spotter type_grenade "machinegunner"
self.spotter thread spottergun
self.spotter gun "MG42"
self.spotter.turret = self.spotter.target
println (self.spotter.turret + " and the target " + self.spotter.target)
self.spotter.gun = self.spotter.target
}
Notice how they have self.spotter gun "MG42" AND self.spotter.gun = self.spotter.target. That second gun assignment is overriding the first. They obviously assigned it thinking that would work as a custom variable but it's still just calling the gun function (using ".gun" instead of "gun").
So maybe the MG42 case isn't being hit inside the tik. So what you think is working on the sandbag gunners is actually just because they have their small arms still assigned to them. Hence why you'll see them using the MG but they'll still be wearing MP40 ammo pouches. We might need to investigate this further to find out if anything in the tik can be done without modifying scripts.
I've actually modified a lot of my human tiks so that, for instance, the green Wehrmacht models have equipment when using MP40s (annoyingly, the original devs left some out), or officers with MP40s have hats, and so on.