schon mal versucht den port zu öffen, nen string zu schreiben und dann wieder zu schließen. Hängt das Programm dann immer noch ?
Ich hab das ganze nur kurz überflogen. Du machst halt doch einige Berechnungen innerhalb von myTimer_Tick.

Versuch vllt auch noch am Ende von myTimer_Tick den serialport zu schließen und zu Beginn dann halt auch auf zu machen