The problem was not being caused by the buffer transfers at all. It turned out it was caused by how I read the buffers and converted the data on the VB6 side of the interface for display. First of all the BufferIn(2) on the PC side of the USB interface is actually the BufferOut(1) on the PIC side of the interface. That was part of the problem. Then it required a specific type conversion process to get it right. For anyone who might read this thread and want to know here is how the DeviceID1 and DeviceID2 values in BufferIn(2) and BufferIn(3) on the PC side mujst be handled in VB6:

Code:
If hidRead(pHandle, BufferIn(0)) Then   ' valid ReportID?
        ' first byte is the report ID, e.g. BufferIn(0)
        ' the other bytes are the data payload from the USB PIC
        If BufferIn(15) = 0 And m_blnFlagRX = True Then  ' There is incoming data set from PIC
        '\\ Read & display inbound data from USB PIC
                   
                ' NOTE: BufferIn(1) here = USBBuffer(0) from PIC...VERIFIED TRUE FOR VB6!
                'Response = Chr$(BufferIn(1))
        
            '\\ Display DeviceID as Serial Number
                lSerialNum.Caption = BufferIn(2) * 256& & BufferIn(3)
                'intSerialNum = CInt(BufferIn(2) * 256& & BufferIn(3))
Hope this might help someone.