It worked. I can now have custom colors. Both the mesh and material must be made with duplicate(). Get the mesh with from the MeshInstance with get_mesh(). Duplicate that mesh Then get the material from the mesh and duplicate. change the albedo_color for the new mesh. Set to the the new mesh. And then set the mesh to the MeshInstance.
Both the mesh and material have to be duplicate. Then assigned. Both the mesh and the material is a shared resource. Most efficient on ram I agree. But godot didn't give a way to have custom coloring.