Проблема в вашем цикле for. Когда вы удаляете метки, [[scrollView subviews] count] уменьшается, что означает, что вы не получите доступ ко всем вашим меткам, поскольку цикл выполняется меньше раз, чем есть метки.
Представьте, что у вас было 5 ярлыков:
(At time of comparison)
i | [[scrollView subviews] count]
=================================
0 | 5
1 | 4
2 | 3 <-- loop ends here since i+1 >= [[scrollView subviews] count]
3 | 2
Вы должны сохранить начальный счет в переменную и использовать его в своем цикле for. Поскольку вы всегда удаляете индекс 0, вам не нужно беспокоиться о выходе за пределы массива.