I asked this question over at StackOverflow, everyone who answered seemed to think I was doing everything correctly, and couldn’t see what I was doing wrong exactly. Posting this here in case someone here knows.
I suspect the issue is due to the fact that you are using renderer.material
(this accessor generates a new material instance), rather than renderer.sharedMaterial
.