How frequently must Microchip's USB HID USBDeviceTask() Task run?
Try using USB in interrupt mode.  USB devices must respond to host requests within a certain time frame. You haven't detailed how long your timer tasks routine takes to execute but from this error it seems that it is taking too long and there is no way for the USB to respond in a timely fashion.

Without specific details of your application, I would suggest running USBDeviceTasks() as the only high priority interrupt task and set the timer and its tasks as lower priority. 

This way when the host requests a response from the PIC when it is executing the timer tasks it will pause executing that routine, answer the host, and then return to that routine.