After you made the mesh a solid (watertight outer shell) it's time to get working face groups.
As a rough start run EDIT/GenerateFaceGroups.
Set its SizeTheshold to max to avoid tiny groups. A AngleThreshold at 13 gives the best grouping in this case here:

That's a raw grouping only. As you see at the hair or shoes there are still tiny groups but others are perfect.
Select the main group you want to split off. E.g:

Check this selection for missed islands or missed/not needed faces at the boundary. Add or remove such faces using a small brush.
When done run Modify/CreateFaceGroup.
Now select the regions of that group again and hit I to invert the selection:

Again run Modify/CreateFaceGroup on that selection.
Now we ended in two groups only. But we made sure that each face is either group A or B and there's no missed face.

As I tried to explain in a previous post GenerateComplex only works if one group is connected to another group on a single, closed loop.
So we need to split the groups again. In SELECT select a region of a group by double click and run Modify/CreateFaceGroup on it. Do this for each region until each group touches another group one time only:

Now going to EDIT/GenerateComlex shows all the seams:

Hitting AutoGenerate now inserts parting surfaces for each loop with a single click:

Accepting and splitting the complex gives this result:

Note the result at the eyes. Here is a ugly intersection. That's due to the definition of the groups there. I could go back and redefine these groups or go back to the GenerateComplex step and use offset of groups instead of fill boundary loops for these cases.