Ваш код был бы намного проще, если бы вы использовали dateByAddingComponents: toDate: options:.
(dateByAddingTimeInterval: неправильно обрабатывает календари, например, изменения часового пояса.)
Если вы хотите, чтобы это повторилось, я думаю, вам нужно добавить несколько или повторно добавить их при следующем запуске приложения. В противном случае уведомление, которое повторяется каждую секунду, будет невероятно раздражающим.