I was wondering how to do this as well, so I did a quick experiment. If you pick an instance of the referenced sprite to change, it will only change that instance which the 3d object uses.
I expect there's some secret picking going on behind the scenes so I'm not sure how far this can be taken, but hey, it works.
https://we.tl/t-DhU4le1S1D
Thanks for trying, i try add your code into my project but dont work. My 3d shape object also have own number id variable, in yours template they dont have, maybe this is reason why copied code dont work in my project? can you do this in my uploaded c3p project?