I am still a Rhino beginner and have been trying many different ways to BooleanDifference two polysurfaces, but I don’t understand why it is failing. Does anyone one know what could be going on? Thanks so much for the help in advance!
Example.3dm (752.7 KB)
The larger object is a closed “non-manifold” object. Running the “showEdges” command will bring up this little dialog which (is hopefully) self-explanatory.

From there you have to figure out how to fix your bad solid… sometimes it’s quick and easy. Sometimes you need to restart from scratch. I’ll have a quick go at it myself.
Seems like just deleting those single surfaces and using the “cap” command (I did one at a time but you might be able to do both) fixed the issue. But… Boolean difference still fails unfortunately

So… my solution was to pull each face off and use the “split” command one at a time.

It’s hard to describe what the issue actually is. Let’s just say there are a lot of weird corners on your solids. You get better at both creating better (and easier to work with) solids in the first place, and dealing with situations where commands just don’t work. Sometimes BooleanDifference and BooleanUnion simply won’t work and you have to either do some manual work or simply start over.
Example - Possible Fix.3dm (836.7 KB)
Thank you so much for your help with this! I did not know about the showEdges command and hopefully that will also help with some other open Poly surface objects I am working on 
I exploded the larger polysurface, removed the two superfluous surfaces, trimmed the excess of the remaining surface in the openings, and then joined the remaining surfaces. Result is a closed, non-manifold polysurface. BooleanDifference now works.
The non-manifold surface should not have occurred unless it was deliberate and the appropriate command was used.
File with the reworked polysurface:
Example_DC01.3dm (3.1 MB)
d