How do I replicate a material from an object on the server to the corresponding object on the client?

Is there a way to actually do this then? I can only use UMaterialInstanceDynamic in order to change the parameters of the material at runtime, but cannot seem to have this set in a blueprint, so instead I use a UMaterial but this doesn’t allow parameter changes?

What I need is:
Have the material set on each of my objects
Change the texture in code (SetTextureParam…)
This will then replicate across to the client, with the material showing the correct texture