Timer using millis()

What happens if the roll over in the millis() happens when my timer is running?

The same thing that happens when your watch rolls over at noon and midnight. As you can imagine, nothing.

As long as you always use subtraction to determine interval, rather than addition to define "next time".

In that case there are a certain times that potentially can ruin my whole program?

Only if your interval exceeds 49 days.