After giving up on this for a few weeks, i came back to this and found my solution which was actually a very easy fix. It all works now!
It seems that when you try to get the x or y value of the event, you need to use event.getY(pointerIndex)
rather than event.getY()
The only change i made was:
int pointerIndex = event.getActionIndex();
int pointerID = event.getPointerId(pointerIndex);
float touchY = event.getY(pointerIndex);