Why use an array of timers? It would be better to create classes for different processing and let those decide if work must be done.
on timer event (based on the shortest time span, for example 100 ms.):
vital1.execute;
vital2.execute;
vital3.execute;
or better yet:
foreach(vital in vitals)
{
vital.execute;
}
For example: vital 1 needs to be executed every 200ms, vital 2 every 100ms and vital 3 every 400ms.
In the execute you check if the time has expired, do some processing and set the value (for checking if the time has expired) to the current time incremented with the interval (for example 200 ms.)
You can use
DateTime.Now + TimeSpan.FromMilliseconds(100);
to calculate the next time to check if 100 ms have elapsed.
Using this scheme you only need a single timer to schedule processing of each vital. Be aware that total processing must nut exceed the timer interval because it would otherwise mean that processing will get behind (because processing is started while previous processing did not even end completely).
Good luck!