Sifting through old posts last night I saw a thread - can't remember which topic - where the encoder itself was defective, IIRC it was made in a large country in the Orient. As a final check I suppose you could remove the Arduino connections and test the encoder in isolation. Wire up an LED and associated resistor to the channel B pin and see if there's any change when rotated.