EEPROM Read Operation Always Returns 0xFF
After your write operation, you should check that the EEPROM ACK'ed to be sure the write operation was successful.

Your write operating incremented the EEPROM's address pointer to 0x01. From the Atmel datasheet for your EEPROM:


  The internal data word address counter maintains the last
  address accessed during the last read or write operation, incremented by one.


Therefore, when you do the read operation, you read from address 0x01, not from 0x00 where you just wrote to.

Before your read operation, you should do a one-byte write operation to set the read pointer back to 0x00.

Again from your datasheet: 


  RANDOM READ: A random read requires a “dummy” byte write sequence to load in the data word address. Once the device address word and data word address are clocked in and acknowledged by the EEPROM, the microcontroller must generate another start condition. The microcontroller now initiates a current address read by sending a device address with the read/write select bit high.