Arduino sending data with checksum CRC16

It would be useful if you would print the corresponding data as seen by the receiver, using exactly the same format.

Do you realize that you need to set the global variable crc to zero for each data block transmitted, on both the transmitter and receiver?