Update: I'm 99% sure this is a client issue. I noticed that leather/studded arms go UNDER chest armor while plate arms go OVER. I downloaded the ClassicUO source, and found this in file "PaperdollInteractable.cs":
bool switch_arms_with_torso = mobile.Equipment[(int) Layer.Arms] != null && mobile.Equipment[(int) Layer.Arms].Graphic == 0x1410;
for (int i = 0; i < layers.Length; i++)
{
Layer layer = layers[i];
if (switch_arms_with_torso)
{
if (layer == Layer.Arms)
layer = Layer.Torso;
else if (layer == Layer.Torso)
layer = Layer.Arms;
}
....
}
0x1410 is the... *drum roll* NORMAL PLATE ARMS. So the client is specifically putting the normal plate arms on top, all other arms underneath.
bool switch_arms_with_torso = mobile.Equipment[(int) Layer.Arms] != null && mobile.Equipment[(int) Layer.Arms].Graphic == 0x1410;
for (int i = 0; i < layers.Length; i++)
{
Layer layer = layers[i];
if (switch_arms_with_torso)
{
if (layer == Layer.Arms)
layer = Layer.Torso;
else if (layer == Layer.Torso)
layer = Layer.Arms;
}
....
}
0x1410 is the... *drum roll* NORMAL PLATE ARMS. So the client is specifically putting the normal plate arms on top, all other arms underneath.