質問者です。
その後色々と調べてみるとStringDescriptor(仕様はUNICODEの文字列)の応答データに0x0000応答が混ざっていて0x0000データのあるアドレス位置でPCによって問題が発生したりしなくなったりすることが確認出来ました。0x14(レングス)0x03のあとデータに0x30、0x00、0x31、0x00・・・(20バイト分のデータでこの中に0x00、0x00が混ざっている)
これが原因の可能性が高いと考えています。
ただ、すべてのPCやOSによって同じ0x0000の混ざったデータでもNGにならない場合があります。
これはPC内のUSBのチップのプログラムがメーカーによって
レングスとデータ数の一致を見たり見なかったり、もしくは0x0000がある場所によって
異常判定したり異なる条件があるのではないかと考えています。
PCやチップに詳しい方で、このあたりについて何か情報をお持ちの方回答いただけると幸いです。