El programa parece correcto, solo 2 cosas que cambiaria:
clrf TXREG
Que esta en ENVIAR, que lo sacaria, por que si no seria como enviar un 0x00. Me refiero a que se esta enviando:
'H' , 0x00 , 'O' , 0x00 y asi... suponiendo que da el tiempo lo cual no creo. Es lo unico que veo de malo, pero a lo sumo estarias teniendo un problema en el sentido de que se esta sobreescribiendo los datos, pero no de enviarse muchas veces el texto Hola.
La otra es
movlw b'00000010' ; Rx bit_1 puerto B
movwf TRISB
Cambiarlo por el valor 00000110 es decir RB1 y RB2 como entradas, la explicacion esta en el bit SPEN de RCSTA:
(Configures RB1/RX/DT and RB2/TX/CK pins as serial port pins when bits TRISB<2:1> are set)
Es decir que los usa para la UART si ambos piens estan como entradas ( set , en 1 ), tambien en el paso a paso indica de ponerlo a 1
Son las 2 cosas que cambiaria y 1 mas que es deshabilitar el receptor por ahora. Ya que si envias algo desde la PC vas a hacer un overflow al buffer del receptor, ya que nunca lo estas leyendo. Asi que para eliminar problemas deshabilitalo y vamos probando por parte.