Hi
1- The client never clears its packet, messages are accumulated in it and you always extract the first one on the server. You must either call Packet.Clear(), or declaring it inside your loop so that you use a new clean instance at every iteration.
2- The server calls Receive twice, so it always receives two packets but only processes the last one.