Both things you listed are possible (engine failures and random armor).
As for engine breaking after some time or randomly, some periodically called fuction would be needed to check if the condition for breaking the engine (random, time, distance) is met, every minute or so. Maybe a SetTimer could be used, IIRC it's not used when a vehicle is occupied. I considered such option for some German tanks and for KV-1 tank - so they would break or catch a fire sometime on their own... but the "mean time between failures" would have to be set to values much lower than in real life if we want to see it happening in game sometimes
For "random armor plates missing" - what do you mean exactly ? Armor value set to zero, or armor plates missing visually ? Random armor value is of course possible, some function working at spawn time, it's actually an option I planned for hypotetical hiper-realism version of armor modeling engine - in real tanks the actual thickness of armor plates could vary as much as 5% or more between 2 vehicles or even between left and right side of the same vehicle (including Tigers), same for armor hardness/quality. In fact each vehicle had it's own "personal" protection ratings for each armored plate (if we treat a plate as a whole, which is a simplification too) - although most tanks were in the middle, some tanks/sides could be noticeable weaker or stronger. 5-7% variability can be make a difference sometimes...
But if you mean armor plates missing visually - well I have no idea, if tank model/texture can be changed "on the fly", maybe ask also on 3D/2D forums...?
As for the throttle and mass - well maybe do some testing with different tanks

I do not know at the moment, would have to look into the code what the throttle really means... try to chose 2 vehicles with same gear and transmission ratios and different mass, or just mod few tanks to different specs and test...
Ami