Hallo,
Du benutzt 'bsf' und 'bcf' für Bits im gleichen Register unmittelbar hintereinander. Es könnte sein, daß durch einen Pipeline-Effekt eines der Kommandos 'verschluckt' wird. Setze sicherheitshalber zwischen Bit-Befehle mit gleichem Register ein 'nop'.

Port A muß mit ADCON1 auf 'digital' initialisiert werden, weil dort nach Reset alles Analog-Eingänge sind.