Sounds like a nice project, and you've got a long way so far.
You should probably use another line or two on the PIA as a control lines. This can be very simple or as complex as you want. It could be polled or it could be interrupt driven.
You could have an input line as a data ready line, the Arduino changes the state of this when a byte is ready. You could have an output that tells the Arduino when a byte has been read. You could possibly use timing instead of these signals, but that is more complicated. The WDC 65C21 data sheet is very helpful here and describes exactly what you want to do, take a look at the top of page 15:
Quote:
A second output mode allows CA2 to be used in conjunction with CA1 to “handshake” between the processor and the peripheral device. On the A side, this technique allows positive control of data transfers from the peripheral device into the microprocessor. The CA1 input signals the processor that data is available by interrupting the processor. The processor reads the data and sets CA2 low. This signals the peripheral device that it can make new data available.
So you can use CA1 as an interrupt input when a byte is available, and CA2 as a signal to the Arduino to set the next byte. Then you still have a whole port left for some other use too.