un par de cosas:
lo de la definicion de las patitas del I2C puedes poner las que quieras, a menos que quieras usarlo hardware, que si tienes que poner C3 y C4 y forzar el uso de hardware.
lo de #byte porta = 5 y #byte portb = 6 es la direccion de los puertos A y B. creo que esto esta ya definido en el fichero de definicion del micro y no es necesario ponerlo, a menos que definas una estructura y la quieras redireccionar a u puerto, mira el fichero lcd.c y veras un ejemplo de esto.
if(!bit_test(porta, 4)) goto testhang;
si pa patita A.4 esta a 0 ( la admiracion indica negacion), salta a la etiqueta testhang...seguro que en programa encuentras esto testhang:.......pues aqui es donde salta.
espero que se ayude