I found the bug and fixed it. When I write a flit into the estOut it checks whether previous flit is same as the current one, if == gives true then there is no packet transmission. so I checked the == operator which compares pktid and some timing parameters. In my flit there is no timing parameters and pktid hence some of them were dropped.
Once I included the timing information which contains the timestamp of when the flit is created, which is unique for each flit so no more packet drops. Problem solved!