I would suspect that the driver hasn't been written in a portable way, so it's making assumptions about the in-memory arrangement of bytes and packets, which mean that data structures appear corrupted causing it to crash.
I think you'd have to go through the code and have a fairly deep understanding of usb and network drivers to spot programming errors, and replace with portable code and/or IFDEFs etc.