This is because upgrades are considered to be applied in a progressive way, you can't jump from none to plate. This is the obvious outcome of your testing. The game takes the base armor_stat, then applies the number of the upgrades in armour_ug_levels, probably it doesn't even read the values, just the count of them.
Bookmarks