I haven't heard about that problem with the RGB mode.
SwitchResX is only useful for creating/enabling/disabling timings and scaled modes and for viewing the EDID plus some other features (menus, applications, etc). The problem might be fixable by editing the EDID. There may be many color parameters in the EDID that can be changed or added (I don't know which). Maybe this is what the Ruby script is doing? Where is the Ruby script? It would help to know what the fix does...
To create a custom timing or scaled resolution, SwitchResX edits or creates an override file in the /System/Library/Displays/Overrides folder. The override file can also override the EDID of the display. In fact, Apple includes files for some 4K displays that override their EDID. In 10.9.3, the following override files were added or modified:
DisplayVendorID-4d10/DisplayProductID-21dd // PN-K321
DisplayVendorID-4dd9/DisplayProductID-2503 // SONY TV *07
DisplayVendorID-469/DisplayProductID-32a3 // ASUS PQ321
DisplayVendorID-10ac/DisplayProductID-4093 // DELL UP3214Q
DisplayVendorID-10ac/DisplayProductID-409c // DELL UP2414Q
I don't know if SwitchResX shows the EDID of the override file or the original from the monitor. You may want to try removing the override file temporarily to see the original EDID (probably needs a restart for each change). Or maybe the original EDID is stored in the IORegistry? Here's a command to look for EDIDs in the IORegistry:
ioreg -w 0 -l | grep EDID
If all the EDIDs are not the same then you have more than one kind of display, or else one EDID might be the original and the other might be an override.
You need an EDID editor to edit the EDID binary. I think there are EDID editors for Windows that could work or you could edit it directly if you know the format. Then you can use the Property List Editor to paste it into the override file (the "xxd -p" command can be used to convert a binary file into text representation of the hex, and "xxd -p -r" can go from text hex to binary).