No puedo direccionar correctamente una 24C08 con Arduino

Hola, soy nuevo con arduino, y en un proyecto tengo que escribir y leer de una HT24C08 2 variables A y B distintas. Probando con la librería Wire pareciera que mi problema está en el direccionamiento. Me propuse que los primeros 256 registros guarden valores de A y los 256 siguientes (es decir del 256 al 512) guarden los valores de B.

A y B son de tipo int, y por lo tanto para una muestra tenia que usar dos registros que guardasen el MSB y el LSB, teniendo un total de 128 muestras de cada una. En esto no hubo inconvenientes.

El problema surgió a la hora de la lectura, verificando que siempre escribía sobre los primeros 256 registros, es decir tengo problemas para direccionar registros mayores a un byte (de 256 en adelante).

El código involucrado es el siguiente:

#include <Wire.h>
#include <math.h>
#define eeprom 0x50

int val1 = 0;
int val2 = 0;
int xVal = 0;
int yVal = 0;
int zVal = 0;
double alpha = 0;
double beta = 0;

void setup() 
{
  analogReference(EXTERNAL);
   
  pinMode(4,OUTPUT);
  digitalWrite(4,HIGH);
  pinMode(7,OUTPUT);
  digitalWrite(7,LOW);
  pinMode(8,OUTPUT);
  digitalWrite(8,LOW);
  
  Wire.begin();
  Serial.begin(9600);
  
  for(int i=0;i<=255;i=i+2)
  {
    xVal = analogRead(0);    
    yVal = analogRead(1);    
    zVal = analogRead(2);   
 
    xVal = map(xVal, 0, 1023, -511, 511); 
    yVal = map(yVal, 0, 1023, -511, 511); 
    zVal = map(zVal, 0, 1023, -511, 511); 
  
    alpha = atan((double)yVal / (double)xVal);
    alpha = alpha*(57.2958);
    alpha = (int) round(alpha);
  
    beta = atan((double)zVal / (double)xVal);
    beta = beta*(57.2958);
    beta = (int) round(beta);
    
    Serial.print("alfa: ");
    Serial.print(alpha,DEC);
    Serial.print("\t");
    Serial.print("beta: ");
    Serial.println(beta,DEC);
  
    // ESCRITURA ANGULO ALPHA
    
    Wire.beginTransmission(eeprom);
    Wire.write(int(i));
    Wire.write(highByte(int(alpha)));
    delay(70);
    Wire.endTransmission();
    
    delay(5);
    
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+1));
    Wire.write(lowByte(int(alpha)));
    delay(70);
    Wire.endTransmission();
    
    delay(5);
    
    // ESCRITURA ANGULO BETA
   
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+256));
    Wire.write(highByte(int(beta)));
    delay(70);
    Wire.endTransmission();
    
    delay(5);
    
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+257));
    Wire.write(lowByte(int(beta)));
    delay(70);
    Wire.endTransmission();
    
    delay(5);
  }
  
  delay(1000);
  
  for(int i=0;i<=255;i=i+2)
  {
    //Serial.println("Direcciones del registro de la 24C -alpha- :"); Serial.print(i,HEX);Serial.print("\t");Serial.println(i+1,HEX);
    Wire.beginTransmission(eeprom);
    Wire.write(int(i));
    Wire.endTransmission();
    
    delay(70);
    
    byte MSB1;
    Wire.requestFrom(eeprom,1);
    if(Wire.available()>0)
    {
    MSB1=(Wire.read());
    }
    
    delay(70);
    
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+1));
    Wire.endTransmission();
    
    delay(70);
    
    byte LSB1;
    Wire.requestFrom(eeprom,1);
    if(Wire.available()>0)
    {
    LSB1=(Wire.read());
    }
    
    val1=word(MSB1,LSB1);
    Serial.println("El valor del angulo alpha es:"); Serial.println(val1,DEC);
    
    delay(70);
    
    
    //Serial.println("Direcciones del registro de la 24C -beta- :"); Serial.print(i+256,HEX);Serial.print("\t");Serial.println(i+256+1,HEX);
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+256));
    Wire.endTransmission();
    
    delay(70);
    
    byte MSB2;
    Wire.requestFrom(eeprom,1);
    if(Wire.available()>0)
    {
    MSB2=(Wire.read());
    }
    
    delay(70);
    
    Wire.beginTransmission(eeprom);
    Wire.write(int(i+257));
    Wire.endTransmission();
    
    delay(70);
    
    byte LSB2;
    Wire.requestFrom(eeprom,1);
    if(Wire.available()>0)
    {
    LSB2=(Wire.read());
    }
    
    val2=word(MSB2,LSB2);
    Serial.println("El valor del angulo beta es:"); Serial.println(val2,DEC);
    
    delay(70);
  }
}

void loop() 
{
}

Desde ya muchas gracias por su colaboración.

Saludos!