This sounds like an excellent time to use a debugger. Get it stuck, then stick a breakpoint at the top of your SpeedChanger method and step through, looking at the variable values. This is the best way to see why the code is not doing what you think it should.
http://wpilib.screenstepslive.com/s/...-robot-program