Also nen 16LC621 würd ich gar nicht in erwegung ziehen, außer wenn du vorhast dir eine Quarzlampe zum Löschen des EPROM zu besorgen (oder ein Chip pro Versuch) und gleich beim 16F627 bleiben. Den kannst du mehr als 10.000x neu beschreiben, bevor er anfängt zu spinnen, das müsste eigentlich für seeehr viele Versuche reichen .

Zu deiner Frage, bei Micorchip gibt es eine ganze Application Note (inc. Software und bsp.) darüber, wie man am besten ein Software-I2C Master/Slave löst. Also einfach hier schauen und lass dich nicht abschrecken, die Note behandelt sowohl die Master, wie auch die Slave Seite. Für ein Beispiel würd ich dir raten, dir die I2C_TEST.ASM im Zip durchzugehen.

Naja, ansonsten sind die Infos echt dürftig, es gibt einige Posts auf der PicList, die ich gerade nicht wiederfinde und diese Seite. An den Source-Code zu kommen ist aber ein wenig trickreich, weil da alle Links mit einem "mailto:" anfangen. Also rechtklick auf den Link und Link kopieren, danach das mailto einfach wieder entfernen. Naja, weiteres Malus (zumindest für mich) ist, dass es nicht in Assembler geschrieben wurde ^_^

Ansonsten ist es auch vielleicht hilfreich die offiziellen Specs von I2C zu kennen, wobei ich aber sehr gut verstehen kann, dass sich so ein Datenblatt net wirklich angenehm liest.
MfG
Mobius