PortA works just fine providing you disable the Comparators FIRST!!!! They share PortA and are switched-in by default on Power-up as you discovered when you read the DATASHEET for that PIC.

CMCON=7

Put that somewhere at the top of your code where you initialise the PIC Ports for Input with your TRIS statement (you are using TRISA and TRISB aren't you?) and all will be well.

PortA doesn't have internal pull-up's, an external 10K will be just fine.

Gee, I wish I got $1 for every time disabling Comparators, ADC's and reading the Datasheet came up in conversation...