Boolean modifier doesnt render correctly Blender 2.80
I have two meshes (curves extruded along paths) that I have combined with ⌃ Ctrl + J union. Now I am trying to subtract a third mesh using a Boolean Modifier. When I select difference, I don't see the difference result. When I select union it sort of renders a difference but not exactly either.
I have had this happen while performing union on a couple of other extruded meshes but was able to fix it by removing the terminal edges of the mesh and extruding the terminal face before performing union. In this case, I am stumped. I don't know whats causing the problem.
First question I have is the union of the two extruded meshes. I was hoping to see just some exterior faces on the boundary of the two meshes. Rather it looks like the super imposition of the two.
When I subtract the third mesh from the union, the boolean tools are freaking out. Is this because of the issue I am pointing out in the first question.
I have looked for non manifold geometry and loose geometry but haven't found any. I did not find any duplicate vertices to join. I have already performed a limited dissolve.
Can someone help.
Union of first 2 meshes

When third mesh is subtracted I expect a channel but it renders as an union

MeshA + MeshB - MeshC
edited to answer the question better
go into latest version of blender (2.91) and try using the new booleans they added (Fast, Exact) i havent used these very much so it might not work, and also make sure that the meshes arent the same height or there will be weird artefacts so try making the subtracting mesh and make taller, this is because the boolean system has problems working with meshes that are exactly the same, (like duplicating an object and leaving it at the same place, blender cannot handle the two meshes and breaks)
for the shading artifacts i recomend recalculating the outside normals go into edit mode, select all faces or vertices, then select mesh, normals, recalculate outside, hope this edit helps