I would guess, that at the point (in time) "clbkInit" is called, that relation (Parent->Child) is not yet given.
You might check if "GetParent()" suceedes when e.g. called in "clbkAtmParam" (for example).
It's a known phenomenon that many functions (especially getters) don't perform as expected in clbkInit() resp. clbkSetClassCaps() / clbkLoadState() for vessels. There would be a lot to update. As a general rule of thumb, use SetClassCaps/Init for initialising static and default properties, loadstate for setting properties from the scenario file, and PostCreation to set states and anything left over (In some cases it is even advisable to carry over data from the scenario file and set them in PostCreation if they refer to a VESSEL3 native property). That is assuming the CELLBODY class has an analogue to PostCreation, but I would assume so. Never worked with it so far.