Schau mal ins Wiki, da findest du meinen Code für nen Slave:
http://www.rn-wissen.de/index.php/TWI_Slave_mit_avr-gcc
Ich hab mich dabei an fertigen I2C-Speicherbausteinen orientiert. Das erste Byte einer Übertragung wählt die Speicherstelle im Slave aus, und dann kann man beliebig viele Daten hintereinander schreiben, die dann fortlaufend abgelegt werden.