I keep all my touchable objects in a family, then on touch "Pick top instance" filters out all instances below the top one.
all of the touchable objects also have an instance variable saying which function to call when they are touched. So one place handles all the touch / multi-touch logic, then when it is determined what was touched it branches to the function that handles what happens from there.
if I want a button or group of buttons to be modal (so that nothing else on the screen can be touched), I use an invisible object called ButtonShield that is part of the family and expands to cover whatever area I want, but has a blank function variable and it goes just under the active buttons in z-order. (since I always use pick top instance, this blocks any other objects below the shield)
there are a bunch of other tricks to make a user friendly, proper multi-touch, intuitive UI. It is harder than you would think, but C3 gives you all the tools to make it work exactly as you want.