Одной из возможностей является создание множественной части строки формата и запись:
formattedTimeSpan = String.Format("{0} hr{1} {2} mm {3} sec",
Math.Truncate(timespan.TotalHours),
Math.Truncate(timespan.TotalHours) == 1 ? "" : "s",
timespan.Minutes,
timespan.Seconds);
Это вставит «s» в вывод, если в выводе будет указано что-то отличное от «1 часа».
Обратите внимание, что это не подходит для локализации: другие языки образуют множественное число иначе, чем английский.