One major problem is you're not switching to the proper register banks when attempting to
write to various registers.

Why not just let PBP handle all this for you? ADCON0=xx, OSCCON=xx, it's very easy. If you
prefer to do this all in assembler, you'll need to get very familiar with bank switching, and
read the datasheet so you know which banks things are located in.