Indicativamente, credo che il problema sia dato dalla classe System.Timers.Timer, che opera su un thread separato, al contrario di System.Windows.Forms.Timer, che invece si basa sull'invio del messaggio WM_TIMER, quindi lavora in modo sincrono rispetto al thread dell'applicazione, analogamente a quanto avviene con il Timer di VB6.

L'accesso multithreading ad una risorsa condivisa quale è la Label, a mio avviso, genera il problema segnalato.

Dovresti sostituire il Timer con quello definito nel namespace System.Windows.Forms, oppure strutturare la tua applicazione per supportare correttamente il multithreading.

Ciao!