API packet received are mixed up

Two end devices send API data packet to a router. When they send the packet alternately, every thing is ok. But when they send simultaneously, packets that router received are mixed up and corrupt.

Packet send:
end 1: 7E 00 18 10 00 00 13 A2 00 40 66 9B 34 FF FE 00 01 11 11 11 11 11 11 11 11 11 11 1D
end 2: 7E 00 18 10 00 00 13 A2 00 40 66 9B 34 FF FE 00 01 22 22 22 22 22 22 22 22 22 22 73

The router should receive as:
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11 11 11 11 11 B3
7E 00 16 90 00 13 A2 00 40 76 EC E3 C4 34 01 22 22 22 22 22 22 22 22 22 22 E8

But now the received packet mix up as:
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11 11 11 11 11 B3
7E 00 16 90 00 13 A2 00 40 76 EC E3 C4 34 01 22 22 22 22 22 22 22 22 22 22 E8
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11 11
7E 00 16 90 00 13
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11 11
7E 00 16 90 40
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11 11 11 11
7E 00 16 90
7E 00 16 90 00 13 A2 00 40 78 0E 9A FF BD 41 11 11 11 11 11 11

What’s the problem?

Not sure how you are reading API Frames but it appears that you have a receive buffer problem.

ZNet is a old protocol, better performance can be achieved by using ZigBee modules.
You can migrate your modules to ZigBee using the following link, http://ftp1.digi.com/support/documentation/upgradingfromznettozb.pdf