Definitely not a data toggle problem. A packet with a bad toggle is successfully transferred, that is its ACKed, then the host never tells the driver about it (it never generates a transfer complete interrupt) because the packet is discarded (correctly).
The data toggle toggles between DATA0 and DATA1, Jan mentioned the circumstances that cause the toggle to be reset, and a new transfer is not one of them. The new transfer should start with the next toggle, which is what you say its doing, so the host is being correct, its the device which is the problem.
The packets are being NAKed, which means they are not being received. The device is refusing them. The transfer complete interrupt never happens because the transfer has not completed. The data was not discarded, it was never received in the first place. A device will usually NAK because the endpoint has not been told to receive the data. It sounds like you successfully arm the endpoint for the first packet, then do not rearm it when you do get the transfer complete interrupt. The endpoint has to have been told that it can receive more data. It must have a buffer to put it in and there is usually an enable bit. So you arming goes something like:
1. Set buffer address
2. Set buffer length
3. Set control flags to enable endpoint.
You have do that for each transfer, which sound like each packet in your case.