By getting the exact ticks / mm, script delay, I'm able to create a virtual encoder.
I just give the script the motor speed in mm/s and it increments, or decrements, the correct amount of ticks for the distance covered by the script delay. The encoders are too erratic to be used at all. Could be my roomba, arduino, the wheels, aging PCB ect.. parameters are too much to find the exact issue why.
Just need to workout the difference when turning.
Nailed it! I replaced the wires that are soldered directly on the PCB with new ones, and twisted them. I also reviewed the data conversion code aswell. Encoders are stable now. Still sometimes spike, but a lot more stable.