We were able to repro the issue with TEXTECH INTERNATIONAL LTD. (USB\VID_15CA&PID_0101 ) MIDI device. This device works when connected to 2.0 but not on 3.0 port. We debugged the issue and found the regression.
The 3.0 host controller driver in Windows 8.1 is forwarding a MSOS descriptor query to the device and that some how causes the device to get confused. The interesting part is that the even though the device is not fully functional, it doesn't fail any I/O.
So from looking at the bus trace, every thing looks good. It is this one query that is sent during initialization causes the device to sulk, and then it never internally recovers.
Windows 8 doesn't send this query.
Another thing to note is that this issue manifest only for composite devices.
Fortunately there is a registry override to inform the core USB stack to not send this query. So I request you to apply the registry setting for now to workaround the issue. We will try to get this fix added to a future update and roll it out widely.
Get the VID/PID/REV ID of the device from the device manager. For example, for the device I'm using the VID/PID/REV values are 15CA/0101/F110. With that, create the following registry entry (this registry key might have been already created in some case)
and set the "osvc" value to 00 00.