The problem that you will have is that events don't bubble, and you can't generate your own events to pass up or down. The topmost view that is hit gets the event, and that's where the event stops.
Now, with enough work, it is possible to generate your own custom versions of many of the built in classes in ui. Then, you can implement touch events, and implement your own sort of callback system.
See for example https://github.com/jsbain/uicomponents/blob/master/PopupButton.py
I had to implement a custom view to handle a longtouch event for a button. Also, In this case I wanted to pop up a view with another list of buttons, and if your touch ended on one of those buttons, to call the action for the button. See my touch_moved and touch_ended... Basically the class that handled the initial touch event is the one whose callbacks keeps getting called, so that function needs to handle checking if the touch event had moved onto some other button, and then decide to call that action, etc. if you wanted to be able to pinch zoom, etc, I think you'd have to implement all custom views, and somehow manage sending events up to some master touch controller class.
The other option would be to have your main view be a webview using javascript, and use jquery etc to do everything. Not very pythonic, but it can work, and in some cases better. For example, in panel display, touch moved stops firing because the panel wants to swipe back to console, but if you have webview or scrollview, the panel doesn't steal those events. You use custom uri scheme to communicate back to python.