There are several things that comes to my mind:
-
You use Instances that share material with your original mesh, if you want to set individual materials for each, you have so use Clones:
Clones | Babylon.js Documentation -
Your meshes have PBRMaterials, so you will have to set albedoColor.
Mastering PBR Materials | Babylon.js Documentation -
You use MultiMaterial, I guess you have to set material of submesh?
Multi-Materials | Babylon.js Documentation
I.e. if you set MultiMaterial-flag to false on MergeMeshes and set albedoColor it works: