When reading USB packets with USBHost::intransfer, packet sizes of 512 bytes would read 0 bytes.
In UHD_Pipe_Read, nb_byte_received is declared uint8_t, whereas it needs to be at least uint16_t.
Recompiling the system library using this, everything works as expected.
Not sure where to report this, but hopefully I'll be set straight if this is not the right place.