Hi @kbowerma
I bet it is because D0 and D1 share an interrupt. Perhaps @BDub can help us out with a definite answer as to why.
If it is a shared interrupt problem, I bet we could re-write the code to work since right now it assumes that if you land in doEncoderA it is because pin encoderA changed, but that assumption could be tested explicitly.