The way to avoid mistakes is to use Rhino’s surface modeling tools. Using the solid modeling tools will give you a self-intersecting mess made of surfaces that are bad objects with bad trim boundaries that won’t join properly into a solid.
The main thing you need to understand about the head is that the inner and outer parts are two entirely separate entities. They don’t touch each other and they aren’t connected if they are built correctly. So you need to build the inner and outer parts independently. Use trim and join to connect the inner eyeball to the inner part of the skull then do the same for the outer eyeball and outer sirfaces of the skull. Same thing with the eyeball components. Use trim and join to marry the inner components to the inner eyeball part and the same with the corresponding outer parts,
Then when you get the inner and outer head completed you do the same thing to connect the head parts to the body parts. First separate the inner and outer body parts using ExtractSrf.
Then use Trim and join to connect the joined inner body to the inner head parts and then do the same for the outer body and outer head parts. After that join the inner and outer parts into a clean solid,
Here is a file showing the steps. proj66X.3dm (2.9 MB)
Notice I cut off the ends of the inner skull and capped them to get rid of the self-intersecting end points. You could do the same for the outer skull to avoid the self-intersection when you offset. Make the inner offsets of the skull, eyeball and eyeball components as separate offsetsrf operations. Don’t trust Rhino to do that correctly as one operation.