No, that is the source of the problem here.
<iMilitaryProductionModifier/> is equivalent to
<iMilitaryProductionModifier></iMilitaryProductionModifier>
which is not a valid entry for an integer and will cause a semi-random value to be read like you see.
OK. I thought that it worked the same as it works for nested tags where <tag/> is valid. I'm pretty sure though I've seen that syntax elsewhere, so all modders might want to be on the lookout for it.