自己解決しました。
PID OUTを受信するとBDnCNTに受信したバイト数が入るようで、受信の度にBDnCNTをセットし直す必要がありました。
データシート何度も読み返したんですが、重要じゃなさそうだったので斜め読みしてUSBエラー割り込みの項目ばっかり読んでました・・・。
どうも失礼しました。