Logic is the key word here.
look at your code.
Is in touch OR up arrow is down.
Then you have Is not in touch OR Up arrow is NOT down
So to go up the following conditions must be met:
Is in touch
OR
up arrow is down.
Or so it seems but it's not that simple because the conditions continue with:
Is NOT in touch
OR
up arrow is NOT down.
which triggers a different event than that which you want and expect. ie it goes down.
So your logic says to you that if I touch or press up arrow the player goes up but the computer says that not only do both those conditions need to be met but the conditions at [3] must NOT be met in order for it to work.
If we look at [3] in relation to [2] then:
If in touch in 1 then X in touch at [3] is not met but x up arrow is down IS met and now the code tells it to go UP and Down simultaneously which is why it stalls and goes to "Still" ani. Press the up button and neither condition in [3] is met so it goes up but you thought that happened because there was a problem with the touch ie the up button was activating as per condition [1] when really it's de-activating the up button clause in [3].
Suggest you look at the tutorial on detecting input type and work from there with two sets of controls dependent upon selected input type it's easier in the long run.