Nice step-by-step experimentation/debugging, that's how you learn.
One of the traps with PIC (and almost all micros) are that the pins can all do many things, and also registers that must be set up first as you've found out, and you have to set them up to do what you want first at the start of your program.
e.g. some pins are set to ADC inputs by defaults
This can often lead to hours of frustration just to light a LED.
This is the advantage of say PICAXE, Arudino, and other development platforms designed for beginners, they just work first go compared with raw microcontrollers like the PIC.
Did you know the PIC has built in pull-up resistors you can use with switches?
Dave.