Well, I can't tell what your problem is, but I can tell you what our problem was when we discovered our robot was listing slightly. It turned out to be what we termed "victor bias," though we never really discovered whether the victor or the robot controller was the problem. The problem turned out to be that for equal and opposite PWM values (such as 100 and 154) the victors were not outputting the same amount of power. We ended up fixing it with a lookup table so that the victors would output the same power for opposite PWM values (mirrored at 127), but it took us a few days to work out all the problems.
For more discussion, see this thread
http://www.chiefdelphi.com/forums/sh...=victor+bia s
In particular, read Mike Betts' post and check out his graph
http://www.chiefdelphi.com/forums/at...achmentid=3100
We collected our own data and got a graph that looked a lot like his. What's interesting about that graph is that the center of the "flat zone" is NOT symetric about 127, but more like 130-132. So adding 25 to 127 will give a power value (and hence an rpm) that is substantially different from what you get by subtracting 25. The curve is very steep along there, and a couple PWM values change will really change the power.