I was always wondering if the colors can be adjusted with different resistor values but I guess it's way more complicated than that, right? is it mainly the graphic chip's fault?
The thing with the ATi Small Wonder is that the colours are correct in some modes (basically the standard RGBI modes, like 40col text mode and 4 colour 320x200), but not in others.
The colours in NTSC are decoded relative to a carrier. This carrier is generated by the colorburst signal. The NTSC circuit in the monitor/TV will re-sync to that colorburst every frame.
So the timing of that colorburst relative to the pixel data is very important. If the colorburst is too early or too late, your pixels will be out of sync. This is what happens on the ATi Small Wonder. In some modes the timing is just incorrect, which results in about 180 degrees phase difference, which swaps the colours around.
So if you would want to fix that, you'd have to make a fix that depends on the mode of the video card. Either that, or have a manual switch.
Since it is 180 degrees, perhaps it would work to just invert the colorburst signal.