Sorry for the late reply, I was working on some other stuff and came back to this today! I used the
SkeletonRendererCustomMaterial
component as you suggested and it worked as I wanted. I used stencil masking to make the particles visible only inside certain slots (the ones with the material that had the same stencil reference).
The material property block didn't work because some things were overriding others.
So thank you!