Actually, the problem is with my understanding of Object(x) and not your code. I was under the impression Object(x) respected the picking process, but it doesn't. So, Ball(0).Health < Ball(1).Health was comparing the balls with IID's of 0 and 1. What needs to happen to make it work right is to store the picked ball's health in a local variable then test that like so:
<img src="http://www.infinitepossibilitygames.com/demos/MultipleInstance/MultipleInstanceCollide2.PNG" border="0" />
I probably could make it a little more efficient but it's 2am where I'm at and the brain's fried. :)