Problem tkwi w wywołaniu rekurencyjnym:
remrecurs($curitem['parent']);
powinno być:
remrecurs($curitem['id']);
Dlaczego?
Twoim celem jest usunięcie wiersza o podanym identyfikatorze. Najpierw sprawdź, czy ma jakieś dzieci. Jeśli tak, musisz wywołać usuwanie rekurencyjne na każdym z dzieci nie na rodzica ponownie. Ponownie wywołujesz funkcję rekursywnie na rodzicu.. Prowadzi to do nieskończonych wywołań rekurencyjnych, niszczysz stos i ulega awarii.