To finish it off you probably could use the duplicated surface to close up the white ring to keep it solid.
Probably there are other ways to accomplish this, but BooleanUnion isn’t it because the green lips are at same location as the white surfaces - you won’t be able to control what gets picked.
Hello - while no doubt this should be made to work, if you are combing things that leave microscopic edges like this segment, .007 units long
then you also need to be cleaner about modeling your objects in the first place. The objects have edge tolerances that are getting fairly close to the current file tolerance - if you make the file tolerance .0001 and RebuildEdges on your brep faces and join, the objects will not be closed. What would be useful I think is looking at the entire process used to get the inputs to this BU case.