I think, you might have to look at the component where you are putting the data into fifo.
You might need to create another packet for the handle each time you perform a *_fifo.put().
Your output indicates that 3 packets come with the same content. Not sure if this might solve your problem.
If possible, can you please put in the code, where you put into the FIFO, probably in the monitor.