This may not be the problem, but try setting all the I/O to digital (i.e not analog) by adding the following to the top of your code:

Code:
ANSEL=0
ANSELH=0
For info on the ANSEL registers, see pages 42 and 50 in the 16F886's datasheet.