Hatte auch mal so ein ähnliches Problem: bei mir gab es eine Klasse, die dass Screen-Center als TPoint benötigt hat. Das hab ich auch korrekt übergeben und im Debugger wurden auch die korrekten Werte angezeigt. Direkt nach dem Aufrufen waren die Werte total verwurschtelt und komisch (aPoint.X war -61262524 glaub ich und aPoint.Y war immer 1). Da hat sogar erst ein Restart der
IDE das Problem gelöst (Ebenfalls Delphi 7)