Make your top level container a CCNodeRGBA and set in the init :
self.cascadeColorEnabled=YES;
self.cascadeOpacityEnabled=YES;
self.opacity=255;
When you run a CCFadeAction on that, the node will do all the forklifting of cascading down to children and grand-children. At the end of the fade action,
id fade = [CCFadeTo actionWithDuration:2.5 opacity:0];
id done = [CCCallBlock actionWithBlock:^{
[self removeFromParentAndCleanup:YES];
// plus whatever else you see fit
}];
id seq = [CCSequence actions:fade, done, nil];
[self runAction:seq];
ob cit : from memory, not compiled nor tested, YMMV