Ambos envian datos por el puerto serie. La diferencia entre ellos es como los interpretan.
Serial.write(val) solo envia el byte menos significativo de val. Como ya sabes un byte son 8 bits osea 2^8 =256.
Serial.write(65); produce lo mismo que Serial.write(321); o Serial.write(577); o Serial.write(833);
321 - 256 = 65
577 - 512 = 65
833 - 768 = 65
En conclusion puedes usar Serial.write() pero cada ves tu variable int la debes descomponer en 2 bytes enviar cada byte y reconstruirlo en el otro Arduino.
Puedes usar la funcion lowByte().