Why would GrantUpgradeCreate be triggered by anything? Thats whats causing your crash.
To make your idea work, you need to define the new LightTankCannon weapon as a new WeaponSet with a PLAYER_UPGRADE condition, and then use this;-
Code:
Behavior = WeaponSetUpgrade ModuleTag_50
TriggeredBy = Upgrade_Veterancy_HEROIC
End