That's because you are using Touch.X and Touch.Y expressions, and when multiple fingers are touching the screen, these expressions return coordinates of the first touch.
You need to save the touch ID of the finger which is touching the joystick, and then use Touch.XForID(id, layer) and Touch.YForID(id, layer) expressions.
Or loop through all active touches and pick the one which is touching the joystick - in this case use XAt/YAt expressions.
See the links I posted earlier. Here is another demo project which demonstrates how to use multi-touch:
howtoconstructdemos.com/air-hockey-game-template-for-two-players