Holdout plus glass shader problem!
The Holdout shader is a non-realistic shader that acts much like a black hole. From a data perspective, it really is exactly that.

The glass shader receives information (in the form of ray casts) about what's behind it, and what can be reflected in it. If that information is coming from a holdout shader, it will be null/black/empty/World/Sky. A glass shader that tries to refract, reflect, or transmit a holdout shader will produce some strange results.

For this reason, a holdout shader is really only useful for compositing.

If you want to have objects in your scene that don't render, there are a number of better ways to do this.

For one, you can disable "renderable" for each object in the outliner by toggling the camera button. This doesn't render the object at all in any regard. I think it still participates in simulations, but it won't be visible, nor cast shadows, nor participate in any other render calculations. This will work with both render engines:



Another option (specific to Cycles) is to turn off visibility for specific types of rays (Properties panel -> Cycles Settings -> Ray Visibility). This can be a really fun thing to play with. For example, if you uncheck only "Camera" then you will see the object's shadow, it will appear in reflections, and it will appear through glass, but it won't be visible if it's directly viewed by the camera.



A third (somewhat more complicated) option is Render Layers. You can put those objects on another layer, and not render that layer. Note: there are some constraints, modifiers, and simulations that don't like having their participants on different layers.