Ma non è che il problema dipenda da quel: pProvChild?
Perché ogni volta che inizia una ricorsione viene ricreato da zero e oltre ad avere un memory leak (non lo deallochi mai), perdi i dati che immagino vorresti passare a ogni chiamata.