Pins vom Controlport die nicht vom LCD genutzt werden kann man anderweitig nutzen.
Wenn die UART belegt ist, bzw. das LCD deswegen nicht funktionert, darauf achten, das kein Print und kein $baud im Programm vorkommt.
Soll heißen, wenn die UART aktiviert ist, geht das LCD am PortD nicht mehr, weil diese beiden Pins nicht mehr gesteuert werden können.
Andersrum gesehen, würde während das LCD an diesen beiden Pins Signale erhält, diese auch an den Empfänger der UART gehen, welcher evtl. leicht verwirrt ist
Evtl. kannst Du den ControlPort auf PortB legen, denn der ISP stört nicht so sehr wie UART.