I really really want you to succeed as well…. Ok so it seems that the control loop should be working. There are from my point of view two possible causes why this is not working. Sensor input being wrong or output power to the motor is wrong (you are getting another output power that you except) – or it could even be a combination of the two.
So I guess a plot of the sensor input and also a motor speed versus the input power would also be a good thing (A open loop step-response of the motor at different powers) just to verify that everything looks OK.