Why do particles escape from the tube?
I cannot reproduce it with blender 2.77. I can see the bubbles escaping the tube in the cached position in your file, but as long as I go back to the beginning and restart the animation, it works almost ok.

Either you have an older version and something was fixed in blender or you never actually reset the cache. Blender resets the particle cache when you set the current frame to 0. You have to run the animation again for blender to recalculate particle positions. Thus, you might have already fixed that and you can't see it

In a theoretical attempt to solve the problem there are a number of things that might help:


Nothing is really impermeable. Though you have (correctly) permeability set to 0. Some bubbles might escape still. IIRC increasing the subdivisions on the pipe might improve the situation, but it seems this isn't the case here.
Increasing the Particle Damping factor on the pipe's collision properties helps to catch those rogue particles that would escape
Making your pipe a solid instead of just a wall of faces. Either use the solidify modifier or just extrude everything and then press AltS to offset the new faces. This way the particle will have to escape two faces to get out. It will also help with the bubbles that partially stick out of the pipe.


Finally, your pipe is way too high-poly for just being a pipe. You should be able to achieve the same rendered quality without so many polygons.