Hallo,
TWIE ist nur da, damit die ISR aufgerufen wird, darin muss die nächste TWI-Aktion ausgeführt werden.
Wenn man das nicht benutzt, muss man das Flag TWINT pollen, wenn es gesetzt ist, TWSR auslesen und darauf reagieren, das wird in den meisten Beispielen auch so gemacht.
Deswegen gibts auch die Funktion TWI-wait-int, weil das bei jedem Schritt gleich ist.
Ich würde das waitms 500 da raus machen, da schläft ja jeder Slave ein
Die ganzen Prints zögern auch unnötig raus.

Die Beispiele aus der Wiki-Seite sollten funktionieren, ausser es gäbe einen Bug beim 2560 dazu.

Welche Bascom-Version ?

Hast Du die reine I2C-Softwarelösung auch probiert ? Die sollte doch immer funktionieren, ausser das Problem liegt ausserhalb des AVR.