The sheets however have some slight differences (0x<hexnumber>)... Could that be used?
If I remember correctly OP2 uses the atoi() C run time function to convert the text string to an integer value. Assuming this is true, then the only numbers that would work would be base 10 (in other words, the 0x-- notation for base 16, or the 0-- notation for octal, etc. wouldn't produce correct results).
And I should probably try to make myself clearer on this point. In the sheets like building.txt and vehicles.txt, "Armor Class" has to be from 0-6 (well, really, it can be outside of this range, but weird things will happen. This number is actually an index into an array of pre-defined armor values, and there is no bounds checking... so if you go off the end of the array you will get garbage values, from what I remember there is ASCII data right after this array). So, in short, you cannot do something like "10" for a better form of Adamantium Armor on vehicles than that list permits.
I'm not sure if the UNIT_PROP in the techtree files has this limitation, but I tend to think not because of the way unit properties work (they are defined in a list that contains the property name alongside the offset into the unit info structure to point at an integer to be modified, and the raw armor values are stored there), so you should be able to modify the armor values to any intermediate value you want using a techtree.
As far as giving such armor at the beginning of the game, there are various tricks you can do with a techtree to make the UNIT_PROP take effect immediately. (Such as setting the COST to 0 and not having any REQUIRES lines, which makes it a free technology given to the player immediately).