The problem with piercing and armor values is that it is abstracted too much.
If only one unit would give full bonus the player can max out every division by just putting one unit of TD based on heavy/superheavy chassis.
On the other hand, this unit doesn't lose it's armor thickness or piercing power only because there are more infantryman fighting besides it. So an average is equally wrong.
Simulating individual units fighting would solve the problem, but it would need to much processing power.
So how could this be solved?
In my oppinion a good solution would be, that armor and piercing are sumarized with their absolute value in percent. E.g. 2 tank battalions with 10 armor, 2 infantry battalions with 0 armor and an at battalion with 2 armor
-> division armor value:
40% 10 armor
20% 2 armor
40% 0 armor
The enemy divisions piercing value is put together the same way and results in, e.g.
10% 12 piercing
60% 5 piercing
30% 1 piercing
Now each combat "tick" the game does randomly chose an armorvalue from the ones represented (the higher the percentage the higher the chance a specific value is used). Than the damage is applied according to how much percent of damage can pierce.
E.g.
1st tick:
Game rolls 10 armor, only 10% of damage is applied (rest can't pierce 10 armor)
2nd tick:
Game rolls 0 armor, 100% of damage applied
3rd tick:
Game rolls 10 armor...
If in between 2 armor is rolled, the game would apply 70% of damage.
This would apply the values according to unit composition without dimnishing individual units full benefits trough averaging.
Averaging would make an average of 11 pierce allways do 100% damage to average armor of 10, which shouldn't be the case if there are battalions with 5 pierce or 15 armor included.