Well, it sounds like something is backwards. See, to get complementary colors you have to send the opposite values (or, values from the opposite end of the range. For instance, a pure red value is represented as (255,0,0) in RGB values. To get the complementary color cyan, the color value is (0,255,255). So, in red the values are from zero, while in cyan the values are from the max of 255.
If you're absolutely sure that the connectors are correct, then I would check that you have a proper ground. I'm thinking that maybe the values are working from ground as a reference, but the "ground" isn't really neutral.
Or I could be making this up as I go along.