If a parent is intercepting the motion event, the only way to prevent this is to prevent the parent from
intercepting that event. This can be managed well in two ways.
Without seeing specific code and wanting a generalised solution I would suggest the following.
I would suggest managing your touch events for the parents and the child by managing the
requestDisallowInterceptTouchEvent(boolean) and
onInterceptTouchEvent(android.view.MotionEvent) event handlers of every view/viewgroup within the affected views A, B C.
By disallowing parent intercepts in the child, this assists you in catching parent intercepts you
haven't accounted for, and also to customise and vary the child elements from within one parent.
This must be managed from your highest parent of your view/viewGroup and managed through all parent and
child relationships.
Checking for listviews, any element that has a inbuilt touch events.
android.com/training/gestures/viewgroup
In terms of finding the offending view that is intercepting the event, that cannot be answered except by the logic of:
Go through each parent to child/parent to child view. Methodically check the ontouch handling within each view/view group
as shown in my diagram.

There is some more detail in these answers here:
https://stackoverflow.com/a/30966413/3956566
https://stackoverflow.com/a/6384443/3956566
I'm sure you understand this, but to me, it's the simplest solution.
Beyond this, we'd need to look at your code to troubleshoot it.