Во-первых, не используйте UnityScript, он уже без поддержки, а в 2018.2 его совсем выпилят.
Во-вторых, парсить число в int, превращать его в строку и с сравнивать со строковым представлением числа - плохая идея. Вы переменные экономите или что?
В-третьих, не используйте Invoke, вызывать методы по строке это очень плохая практика, не говоря уже о том, что в вашем случае он не нужен, достаточно прямого вызова.
Что касаемо многократного вызова TimerStatus, так тут всё просто. Update вызывается много раз в секунду, а значение sDisplay меняется один раз в секунду, простейшее решение - добавить флажок, который будет выставляться каждые тридцать секунд, а в остальные секунды сбрасываться.
if (seconds == 30)
{
if (!calledTimerStatus)
{
calledTimerStatus = true;
TimerStatus();
}
}
else
{
calledTimerStatus = false;
}