1) what doesn't work?
When I run the debug I can see the registers with either FF or 0 depending where the pot is, the output on portc is the same value as these viewed registers. The program acts like a comparator been left enabled on the a2d pin.

2) Expected to work on Internal or external OSC?
I am using the internal osc, I have tried to replicate one of the sample asm demo files to make sure I understand whats happening. I can also blink the LEDs without a problem.
This is the code
Code:
TRISC = %00000000
loop: 

high portd.3
pause 250
high portd.2
pause 250
low portd.3
pause 250
low portd.2
pause 250
goto loop
end
3) Config fuses?
I think this may be the problem, if I set config fuses in the code I get duplicate label errors.
I have not set any in the code or changed them in the inc files as the blinky code above works.