Ese no es el problema, pero creo que ya lo encontré.
Por defecto (después de un PowerOnReset) los pines que se configuren como entradas, quedarán como entradas analógicas. La librería pone como entrada el puerto que se esté utilizando para datos, para poder leer el bit de bussy, y así esperar a que se desocupe el display para mandarle el próximo dato.
En tu pic, al hacer entradas al puerto B, quedan como entradas analógicas y por lo tanto no es interpretado correctamente el bit de bussy enviado por el display.
Para solucionar eso, basta con poner
antes de llamar a InitLcd();