I was able to download and compile your PIC firmware code, but USB functionality isn't quite working right.
I notice in the compiled PIC firmware, the Product ID is 0xFC92. The product ID in the usb_descriptors.c from CDC - Serial Demo from Microchip is now 0x000A. I imagine there are also other changes which are causing my USB not to work quite right. Could you diff the current usb_descriptors.c to your version and give me the changes?
The second thing I noticed is in the .zip you posted there is a PUMP.hex and a ols.hex. ols.hex works correctly and is twice the size of PUMP.hex. The hex I get after compiling is much closer to the PUMP.hex, am I doing something wrong when I compile?
ROM USB_DEVICE_DESCRIPTOR device_dsc=
0x12, // Size of this descriptor in bytes
USB_DESCRIPTOR_DEVICE, // DEVICE descriptor type
0x0200, // USB Spec Release Number in BCD format
CDC_DEVICE, // Class Code
0x00, // Subclass code
0x00, // Protocol code
USB_EP0_BUFF_SIZE, // Max packet size for EP0, see usb_config.h
0x04D8, // Vendor ID
0x000A, // Product ID: CDC RS-232 Emulation Demo
0x0100, // Device release number in BCD format
0x01, // Manufacturer string index
0x02, // Product string index
0x00, // Device serial number string index
0x01 // Number of possible configurations