Well, I would say that "Immunity is not quite perfect".
I have 3 or 4 different radiations in my game, and only one is the true Radiation ( ohter are Napalm effect, or Ion cannon effect ), and I wanted Desolator to be immune only to radiations, not to fire; so I removed "ImmuneToRadiation=yes" from Desolator then I made a new immunity type, specifically for deso / nuke radiation ( [RadSite] ); when Desos had that immunity, then ordered to deploy, they didn't create any rad-field; just stayed there, deployed...
Now the Desolators are immune to all radiations, and I no longer use new Immunity types...
About NewUpgradeSystem: what about selections ? If you select MYTNK and hit "type select", will this also select MYTNK1 and MYTNK2 ? ( the units from your example )
I have 3 or 4 different radiations in my game, and only one is the true Radiation ( ohter are Napalm effect, or Ion cannon effect ), and I wanted Desolator to be immune only to radiations, not to fire; so I removed "ImmuneToRadiation=yes" from Desolator then I made a new immunity type, specifically for deso / nuke radiation ( [RadSite] ); when Desos had that immunity, then ordered to deploy, they didn't create any rad-field; just stayed there, deployed...
Now the Desolators are immune to all radiations, and I no longer use new Immunity types...

About NewUpgradeSystem: what about selections ? If you select MYTNK and hit "type select", will this also select MYTNK1 and MYTNK2 ? ( the units from your example )