As a test, I tried offsetting the surface of the polygons flowed on the surface; it failed to do them as a group (some of them offset properly), but I found I could select and offset them individually after cancelling the offset on all of them.
Look at the iso-curves of your original surface.
This surface is waaaaay to heavy on controlpoints and probably for this reason prone to these kind of errors.
Simplyfying and cleaning up the underlying curves and surfaces is allways a good idea when offset and shell gives you trouble.
If you post a file we could help you on the specifics.