das end; vor var ist falsch. das gehört an die Stelle weiter oben, um die Klassendeklaration des Formulars abzuschließen...
Das ist dann aber nur in Lazarus falsch, in Delphi ist das so korrekt. Das Feature nennt sich nested types und gibt es in Delphi seit Version 2006.
Hilft vielleicht das Umschalten in dem Lazarusprojekt auf den Delphi-Modus?
Nebenbei sollten Typdeklarationen wie kontakt immer mit einem T beginnen um dies zu erkennen, also TKontakt. Und der Pointer darauf sollte PKontakt heißen. So ist die Namenskonvention.