Для того чтобы вывод порта работал как GPIO нужно записать в соответствующий бит GPxCON значение 0000b. Если это вход то направление в GPxDAT 0, если выход 1. А какие данные нужно записывать если это вход, 0 или 1?
Чтобы вывод работал не как GPIO записывается 0001b, 0010b, 0011b. А какое при этом должно быть направление (вход/выход) и данные?