Armor colour is ignoring the base item's color modifier
Item.getColorFromItemStack is completely ignored when compiling the colour of the Armor piece from its components' textures. It should be taken into account, otherwise dynamically coloured items will just stay grey. If it is not possible to use this, the texture should use the primary material colour instead of a compiled one. If it is not possible to detect this, please add some way to register a custom colour for a material ID without having to access ArmorTextureManager.materialColors.
Since Caches.color.calc already takes the ItemStack instance, you could pass the ItemStack to ArmorTextureManager.getColor, this would make it possible to use getColorFromItemStack. Make sure it applies the correct colour properly to the rendered Armor model, too, otherwise it will look like this: 