Jeśli zmieniasz tylko nazwę katalogu (i nie zmieniasz ścieżki) to czemu nie użyjesz prostego rename wbudowanego w php?
Inna sprawa, że to niekoniecznie musi być przecież katalog. Zerknij sobie jaki "typ" zwraca Ci ów niepokorny

Może się okazać, że jest to dowiązanie (link symboliczny) i stąd jest problem, bo robisz tylko sprawdzenie czy coś jest katalogiem. Jeśli nie jest to traktujesz wszystko jako plik, choć nim de facto być nie musi. Lepiej też jeśli byś przerobił ten skrypt na rekurencyjny, bo inaczej nie wejdziesz głębiej niż na 1 poziom, a przez to podkatalogi w kolejnych zagłębieniach będą puste. Po prostu wywołaj przy katalogu odwołanie do funkcji o tej samej nazwie.