when sharing geometries between objects is there a way of modifying the UV attribute independently so that changing the UV of one object doesn’t change it for all objects sharing at geometry?
No, this is not possible. You need a geometry per object. However, you can still share buffer attributes which are identical for all objects (in your case presumably
color) across the geometries.