The problem may arise because the RGB switch uses a single resistor. As such they are not really suitable as an RGB display with accurate or even reasonable colours. While they are perfect if you only want to display one of three primary colours mixtures are highly compromised.
I have found a similar switch without internal resistors (supplier ONPOW on Aliexpress).
The red led has a voltage drop of 1.7v whereas the Blue and Green are specified as 2.8v.
The switches also come in Common Anode or Common Cathode form.
I am using RGB.mirrorTo to map the led signals to PWM output pins. I experimented with the resistor values and found that Red 680 ohm, Green 470 ohm and blue 220 ohm gave colours that are acceptable - in paricular white and yellows that are white and yellow not reddish white, blood orange etc.
The colours can, of course, be manipulated by changing the intensity of each colour when under user control but this method does not correct system mode.
The only issue I have now is that the mirror does not work during startup. This is not an issue for my application (a medical data logger) since I disable wifi to conserve battery power. The leds are mirrored when I subsequently enable wifi and connect. It would be nice however to be able to see the leds during software uploads without opening the case. Not sure whether this is being enhanced in 0.7 update.