Boolean not working for all faces in an object Blender 2.79b, Win7/64...
I've combined several mesh objects into one (using Join) in order to operate on them all with one Boolean shape without having to duplicate lots of modifiers (and other things).

However, at least one part of my new combined object seems to ignore the Boolean modifier. Here's the object:



I've highlighted the part which doesn't get Booleaned.

Here's the result of Boolean intersection with a scaled cylinder:



Also, note that the corresponding component on the left side is completely absent when the Boolean modifier is applied.

For completeness, here's the Boolean flipped to Difference mode. Again, one of these components is absent, and one is unclipped, but the other way around from the Boolean=intersect case:



So, I'm wondering... These components are identical, and so one was a copy of the other, flipped and translated. I didn't apply the location or rotation before joining. So I'm thinking that maybe when the Boolean modifier is active, one of these components is correctly clipped, but the other one is flipped and translated to be on top of the first one, and is missed by the Boolean modifier. Maybe.

However, what I'm missing is understanding how the rotation and position of components can persist even when they're all combined into one object. And more importantly... how to fix this! I tried separating by loose parts, then applying position and rotation to those two components, then re-joining, but it didn't change anything.

Or maybe it's nothing to do with rotation and position, but there's some strange property of these polygons...?

Ideas?
In this case, removing doubles in the mesh resolved the problem.