On any given pass through loop, you should be detecting which, if any, "key" is being pressed, if you are trying to use this as a keypad. That's the first but of code you should develop. The code that you have now that detects the simultaneous press of two "key"s is a good starting point. Put that in a function that returns an int. Get rid of the two presses bit. Make the function return a value - -1 for no key, 0 to 9 for the actual key. Look at the getNumber() function for clues.
When you have a function that can tell you which key, if any, is pressed, on any pass through loop, then you need to determine if it is the same key as last time. For this, you need two variables (global) - currKey and prevKey. The currKey variable will be valued by the call to the function you write. The prevKey variable will be set to currKey at the end of loop. Then, you can use:
if(currKey != prevKey)
{
}
to see when a change occurs.
Inside that block, you need to make sure that currKey is not no key. If it isn't, then add the key to the array or value you are recording data in. A value is easier.
int value = 0;
value *= 10;
value += currKey;
Independent of the touch screen code, you would test whether value is 1234 (or whatever "password" you choose. If so, change the LED state.
Independent of that, you apply the LED state to the LED.
In pseudo code:
void loop
currKey = getKey()
if currKey not prevKey
multiply value by 10
add currKey
prevKey = currkey
if value equal password
state = !state
digitalWrite state to led pin