I would do something like this:
- Create a BP Actor Class MaterialActor
- Add a MeshComponent and inside the construction script, create a dynamic material instance from the MeshComponent reference, store the resultant value in a Material Instance Dynamic reference;
- Create an integer called MaterialIndex and node it on Element Index;
- Inside the MaterialActor class, create a function SetMaterialColor with a Color Input;
- Inside the SetMaterialColor function, use the SetVectorParameterValue node from the MID reference and node it with the input color.
After this, create a child from this MaterialActor class and set its static mesh. Change the MaterialIndex default value to the actual index your Material is set.
Create an event that GetAllActorsFromClass (MaterialActor), use a for each loop and, from the resultant reference, call SetMaterial function.
Try it, I think it might work.