Du solltest evtl. die letzte Position wieder einlesen und an die Aufrufende Funktion zurückgeben und den FILE-Pointer neu mit fsetpos positionieren.
Sieht so aus, als wenn der FILE-Pointer den Wert aus der Funktion nicht übernimmt. Oder nen Pointer auf den FILE-Pointer übergeben.