This morning my head is a little more awake and the solution to your problem is rather simple. Just use 1 side of your switches so it's either on or off and do the edge detection in software. Edge detection is easy in software. Assuming your keyboard routine returns a 32 bit variable with 1 bit for each switch, to find changed switches xor the current switch state with the previous state - any 1 bits are the switches that toggled.
Mike.
Code:
keys = ReadKeys();
edges = Keys ^ Previous;
previous = keys;
Mike.