If the rotation speed changes, either from an output change or from a load change, the change will not be fully measured for 1/2 of a rotation. At high speeds, this dead-time is relatively very small. At low speeds, this dead-time is relatively large. Which means PID parameters that work well at high speeds will not work well (or possibly not at all) at low speeds.
When faced with a similar problem, I used different PID parameters for different setpoint ranges. In my case, I was controlling a wind turbine and the goal was to obtain a very stable flow rate. Because of the system and the goal, changing PID parameters while the system was running did not cause problems. Something similar may work for you. Think of it as "changing gears".
In regards to using the current: the more separated your control strategy is from the thing you are trying to control the more problems you will have. I suspect the current is too far separated from what you are trying to control to add much value.
I vaguely recall that measuring "back EMF" can be used to more directly determine motor speed. That may work to reduce the low speed dead-time. I think this is where I read about it: http://openservo.com/