First observation, you have to disable ADCs on PORTA
ADCON1=7

and at the top, you should insert a short PAUSE (let's say 50) after
CSpin = 1
Just for safety sake


sorry i'm too lazy tonight to check the whole thing

Fortunately, someone else may have a deeper look to?