This is a basic problem with WebGL, which is what Three.js uses, as opposed to the canvas renderer in Jmol/JSmol. The current version of WebGL does not handle transparency very well, and there's not much we can do about that.
Transparent objects in WebGL are treated as if they are located entirely at their respective centers. When the center of one transparent object is behind part of any other, it can disappear completely because the renderer assumes it is not visible. Extended objects can be broken into smaller parts to avoid this, but self-intersecting transparent surfaces are always going to be a problem.
I did add two options for the viewer, render_order and single_side, that can help work around problems. If you've built 9.beta6 then they are described in the documentation. The first option forces objects to render in a particular order, which will keep objects from disappearing from certain angles. The second is useful for closed surfaces.