Help needed.
I have a display unit with a program created originally with PBP 2.5 that has been working correctly for many years.
The unit uses a 16F876A and has a USB interface that sends ASCII to a PC.
The units function and data displayed on the PC worked OK.

A few days ago I needed a small hardware change so decided to alter the program to display a different version in the header sent to the PC.

I changed the :-
@ DEVICE pic16F876A, hs_osc, wdt_on, pwrt_on, lvp_off, protect_on
to :-
#CONFIG
__config _FOSC_HS & _WDT_ON & _PWRTE_ON & _BODEN_ON & _CP_ALL & _LVP_OFF
#ENDCONFIG

In my header the change was from :-
serout USBport,T9600,[12,"*** Diagnostic Display Unit v1.3 ***",13,10]
to :-
serout USBport,T9600,[12,"*** Diagnostic Display Unit v1.4 ***",13,10]

Compiled and loaded OK except now the PC does not receive valid data.
If I load in the 1.3 version originally compiled with PBP2.5 all works OK.
If I then load in the changed version created with PBP3 then the Serout data is corrupted (no display or strange characters).

The only changes made were the #Config and the single change to the Serout line.

I downloaded and installed the latest versions of PBP3 (3.0.7.4), latest MPLAB 8.90 and MCSP 5.0.0.5 and melabs programmer 4.50.
Compiled and loaded the program again and still incorrect operation.

I tried replacing Serout with:-
Serout2 USBport, 84,[12,"*** Diagnostic Display Unit v1.4 ***",13,10] and the display behavior is incorrect and identical to the Serout.

I removed the #CONFIG lines and set the config bits manually in the programmer --- still not working correctly.

I reduced the speed down to 1200 but problem persists.

Anyone have any suggestions ?