трабл возник при перемещении, когда пользователь перемещает файлы или папки.
и папки с одинаковым названием необходимо слить воедино
Так если всё начинается с корректной структуры, то, казалось бы, Вам нужно перемещения по одному обрабатывать (сверху вниз), и искать свободное название (т.е. "clone, clone_clone, ..." или "clone1, clone2, ...", если я правильно понял)?