Unfortunately there are many issues related to cell groups structure: SE / Cell @ CellGroupData in Cells family
And my rules of thumb, unfortunately, are:
only use CellGroup+TextCell+ExpressionCell and friends, which are a higher level collegues of CellGroupData and Cell, for small snippets rather than serious work. Why? I don't know, maybe I just can't handle them but writing your code in a low level form works:
NotebookWrite[EvaluationNotebook[], Cell@CellGroupData[{Cell["hello"], Cell["goodbye"]}]]
don't expect much from Manual CellGrouping with respect to other related options. Same reason.
You want details? You can as WRI Support.