Many years ago I had an analogous problem with a sprite-based animation engine; essentially, the sprite’s loc onscreen was updating too fast for the sprite-based collision detection to render and compensate for, so it would occasionally escape its boundaries.
The only workaround I was able to develop was to poll for the sprite’s anticipated location, determine if it was outside the bounding rect, and reset it to those boundary values if it was. That bypassed onscreen updating and collision-detection entirely and added an extra step at each frame iteration, but it did solve the problem.
I’m not sure how you’d go about doing an analogous thing in Hype. A frame action, maybe? One that checks the balls’ locations on each frame refresh?