> Das mit den 20 MHZ habe ich nicht verstanden.

Wiel du das Baudrate-Register für fosz=20 MHz setzt:

> BSF STATUS,RP0 ; Bank1
> MOVLW 15 ; Set Baud rate 19,2 kBPS bei 20 MHz
> MOVWF SPBRG

Ich kann mich im Moment leider nicht intensiever mit deinem Code beschäftigen, aber ich könnte heute abend Code posten, der funktioniert (ist bei mir im Einsatz