Su Arduino il tipo "int" è uno "short int", quindi 16 bit, 2 byte.
Il casting automatico è in realtà un troncamento, nel senso che se gli passi un int e lui vuole un byte, il dato viene troncato coi risultati che puoi immaginarti.
Io ho lavorato con l'I2C sui Tiny, ho anche scritto un paio di guide sia per IDE 1.5 che per IDE 1.0
http://www.leonardomiliani.com/2013/guida-allutilizzo-dei-micro-attiny-con-lide-arduino-1-5-x/
http://www.leonardomiliani.com/2012/guida-agli-attiny-aggiornata/
La seconda è stata scritta per l'IDE 0022 ma le modifiche alle lib valgono lo stesso, guarda un pò se ti possono aiutare.