I used Qextserialport from git clone https://code.google.com/p/qextserialport/ and the problem is solved to a great extent.
With Qextserialport, around 4% of the bytes get dropped at 115200 baud. On decreasing the speed to 9600, data reception is much better. Only issue is that of the initial 160-190 bytes that are received, some bytes are missing. After the initial 190 bytes, there is no loss at all. Since the loss seems to be predictable, I plan to append some known value 200 times ahead of the actual data and send the whole sequence. The known value will be neglected at the receiver end in software.