Ok, what you're trying to do currently is going to get very messy very quickly if you continue.
Instead, I'd change your approach so that any parent cell which doesn't have a child is displayed as the current cell type, and any parent with a child is displayed as a different cell type - which includes the content for both the parent and the child.
In this way, your indexes aren't all messed up. You section and row counts become simple. (incidentally, you shouldn't run a new fetch to get the count, get it from the FRC instead).
The only mildly complex bit is determining the row height and which cell type to use...