Arduino-Arduino LAN communication - client not connecting to server

As I understand it, the MAC address is the primary way packets are identified as belonging to a particular device on the network. See here:

Notice that after the preamble, the destination MAC is first, followed by the source MAC.

All protocols will have that header, and after that (for TCP/IP protocol) is the IP part in which the IP address is stored.

I believe (but may be wrong) that if the destination is on the local network, its MAC address will be in the packet. If not, the MAC address of the router will be in the packet. The router then has the job of finding either the destination MAC (by using the IP address) or another router which may help.

It follows that if two devices on the network have the same MAC (regardless of what IP address they claim to use) they will both respond, at the hardware level (eg. in the Ethernet firmware) to a packet addressed to them.