The problem stems from this line in your code:
index = Mod(GetRawFirstTouchEvent(1), 20)
You are performing a modulus operand on the actual touch ID that is returned from GetRawFirstTouchEvent(1). This messes up all subsequent calls where you are checking against a specific ID but 'index' is assigned to whatever the remainder of touch ID / 20 is.
On iOS, the touch IDs are random numbers that can be as large as an integer supports. On Android they are generally 1, 2, 3, 4 etc. So in your code, the first iOS touch ID might be:
132207760 but you assign index to (132207760 % 20) which gives it a value of 0 (or some other low number). When you then call GetRawTouchCurrentX(index) you are trying to get the current X value of a touch ID that does not exist, due to your mod() operand on the index value. On Android it is only coincidental that this works as expected due to the touches being in chronological order from 1, and mod(1, 20) = 1 so it is still the same index.
P.S., General Tier 1 questions like this have more visibility if you post to the General AppGameKit Chat section, not many people lurk these other boards.