im Timer gibt es nur dieses?
PaintBox1.Canvas.LineTo(xx,yy*(-1)+593);
na kein Wunder ... zwischen den Timeraufrufen könnte der Zeiger verändert werden
und ohne MoveTo vorher, ist der Startpunkt also praktisch gesehn undefiniert und kann sonstwo liegen (auch auf Punkt 0:0)