hmm du schreibst einfach den text. also versucht er immer weiter zu schreiben. versuch mal, zwischen erster und zweiter zeile (also da wo du den zeilensprung haben willst) 10 leerzeichen einzufügen (!) also 10x den befehl für ein leerzeichen. ich glaub das war i2c_write(0xA0);.
soweit ich das verstanden habe, wird bei jedem geschriebenen zeichen ein zähler um 1 erhöht, um festzustellen wo das nächste zeichen hinkommt. und zwischen den zeilen sind einige zeichen, die nicht angezeigt werden. es könnte also sein, dass wenn du viele zeichen schreibst (dafür die 10 leerzeichen) du irgendwann in die nächste zeile rutscht, weil der counter bis zu dieser stelle weiter gelaufen ist. dann könnte man experimentell bestimmen, wie viele leerzeichen man schreiben muss um in die nächste zeile zu kommen. ist keine besonders elegante lösung, aber dürfte evtl gehen.
später kann man dann mal schauen, ich denke man kann auch direkt einfluss auf diesen adresscounter nehmen. aber probiers erstmal, mal sehn was passiert.