Well, I've been working on the keyer. It turns out that the Arduino Mega has the I2C bus on different pins than the Arduino Uno. Since my keyer shield doesn't actually have pins for that location on the Arduino, I had to come up with an adaptor mechanism. I bought some extra long pins from Jameco and put two of the wires into a two-pin housing, and now I have a display. The lack of sidetone output was traced to a broken wire going to the speaker. The paddle inputs didn't work, but that turned out to be a software error.
It's been a while since I wrote anything, so I thought I'd bring y'all up to date about what I've been doing.
It occurs to me that I never explained why I'm re-writing the keyer software. To recap the project up to this point: I have wanted a CW memory keyer for a long time, and I had wanted to do some project with the Arduino. However, I didn't think that my circuit design skills were up to designing the necessary hardware and I didn't really want to write the software, and it occurred to me that someone else might have decided to use the Arduino as the basis of a memory keyer and have designed hardware and written the software necessary to make it do what I want.