What are the signals hooked up to the oscilloscope in each trace?
I would:
- not disable the SR - leave it active all the time
- read twice, capturing all the bits, storing two bytes separately
- read from the SR as soon as possible in the ISR, to reduce the chance that it shifts again before you read from it
- maybe initially just make the ISR read and store the bytes in a buffer so you can inspect them afterwards, check that works well first before you try to automatically check or decode them
On point 2, if the keyboard sends for example $74, I believe that's encoded as 0:00101110:1:1 so if you read the shift register after bit 8 and again after bit 11 then you should get 00010111 followed by 10111011, with five bits overlapping. You can check successful reception in a lot of ways based on this - the start bit, the stop bit, the parity bit, and the 5 overlapping bits between the two bytes.
One option for timing your reads is to let the SR interrupt fire after 8 bits, using that to trigger the first read, and use T2 to count 11 bits to trigger the second read. It may be simpler than resetting T2 in a hurry during the transmission and allows you to use two fairly separate routines for handling the two types of interrupt.
Something else to consider is framing - making sure you are reading the 11 bits in sync with the keyboard, not offset. You could deliberately skip an extra bit if the parity, start, or stop bit checks fail, for example, to make it self-correct. Another approach could be using T1 to flush the system after an appropriate delay, which would probably be quite a reliable catch-all solution.
First and foremost though, going back to point 4 above, I'd probably start by just setting up to read the SR based on its own interrupt after each 8 bits, make a simple ISR that just captures the first 256 eight-bit sequences into a buffer, and inspect the data by hand to make sure the electronics side is all sound. This will cover things like the clock edge issue, and perhaps the external clock bug in the 6522. Then you could go back to more complex processing.