I would start by doubling REPORT SIZE only.

I would use a word for ADCIN, then move high and low nibble into 2 array elements individually (ie: high nibble to USBBuffer[0] and low nibble to USBBuffer[1]).

Once on PC I'd define the buffer IN as 8 word variables (not sure what type, LONG possibly).

Then I'd leave the USB routines untouched except possibly to loop 16 times instead of 8 where required.

Robert