Потому что ты не разбираешься в областях видимости переменных.
У тебя описаны глобальные переменные:
downtime_border1 = '' # строка!
downtime_border2 = '' # строка!
А ты делаешь присваивание локальным переменным
# Присваивание значения 1 границе
downtime_border1 = string.find('дн', time_border2)-2
# 2 границе
downtime_border2 = string.rfind('.', downtime_border1)
Это никак не затронет глобальные переменные с тем же именем, а только "заслонит" их внутри функции. Читай про ключевое слово global.
А лучше - переделай код так, чтобы не использовать глобальные переменные вообще. Используй возвращаемые значения.
А ещё лучше - перепиши код так, чтобы передавать минимум данных. Например, тебе точно нужны отдельные функции template() и losed()? Их нельзя объединить в одну?
А совсем хорошо - освой регулярные выражения. Это здорово упростит решаемую тобой задачу.