When I open your file and render it, as you can see I don't have the same result as you,
this is because the "Virtual Material" feature gives unpredictable result depending on what workstation it is rendered on (also other factors I suspect).
this feature might seem to work for simple test but it isn't, just make a little more tests...
As a result Virtual Material is not usable in a production environment because network rendering triggers unpredictable results.
On top of that you use 6 materials with 6 different ramps, to achieve a 4 color variation, do you realize that this kind of setup is unusable on real work production,
with hundreds of objects and variation needed ??? What is the point of using this buggy uncontrollable feature ?
Also do you realize that this result (without the bugs) is done and edited 100 times faster when not using Virtual Material but using only one material one gradient and one Random Color Node ?

- in this scene you can compare on simple objects :
on the left, your Virtual Material setup with mutliple nodes,
on the right the same done in few seconds with only 3 nodes !!! (random color node workflow)
Random Color Node works with regular meshes, or with instancers, and have control over everything, unlike Virtual Material where basically nothing is controllable.
But please don't ask JimStar to fix Virtual Material,
Just remove it, it was never useful for any serious work,
ask him instead to fix the Maya Instance bug with Random Color Node ...
Also the TBFX description is just wrong:
TBFX wrote:Virtual material weight - allows you to weight materials so that some are used more than others.
That's not true, only one material contribution is weighted, the Virtual (master) Material. Also changing weight change at the same time all materials assignment randomly so it's uncontrollable.
With the Random Color Node worflow, every color contribution is controllable by changing relative color entry positions in the gradient, and doesn't trigger a random change at the same time...
TBFX wrote:Non-permanent object material - if checked will reassign materials randomly per frame.
This feature has zero use-case, who would need that, changing every frame just make it a stroboscopic effect, this is a just an absurd implementation,
obviously this setting usually called "Seed"should have been controllable by the user not by frame

_