Hi daconfusion,
A common problem is to inadvertently configure a Mach3 Output to drive the same IO bit as one of your Encoder inputs.
See:
Various M Codes may be used within Mach3 to activate IO bits on KFLOP. Note Mach3 typically defaults after an initial install with Output #1 enabled for spindle control on Pin0 (as shown below). Bit 0 is often used on a KMotion board as an Encoder input. Having Mach configure the IO bit as an output will cause the encoder to be inoperable. Disable the output if this is the case.
From Step #6 here:
Mach3 Plugin + KMotion
HTH
Regards