Indeed, I do have a copy of the C8051F347 files. When I asked for it, they even sent me the source code, which surprised me. Collectively, the chip refers to this as the "A4" code version. I formatted the binary hex compiled file from the A4 firmware into the Arduino sketch there on my Github, so it is there for everyone to get.
I didn't write all of the code that appears there, especially around the start-up procedures. There were a couple of other copies of similar code already up on Github for both the ADNS-9500 and ADNS-9800 that I was able to adapt. There is quite an elaborate set of hoops to jump through upon each startup in order to get the firmware uploaded and all the right ports reset and ready to run.
On the Teensy, you just connect up the four lines for the SPI port, which are 0, 1, 2, 3 (SS, SCK, MOSI, MISO respectively) along with power, ground and the interrupt line, which could be any one of pins 5, 6, 7 or 8 as they all handle hardware interrupt functions. In the Arduino software, you just use the SPI standard library to interact with the chip.
The operation of the chip is relatively simple. You attach an interrupt to one of the interrupt pins as "falling". When that pin goes low, the interrupt routine runs that simply reads a specific register inside the chip. This register contains the X and Y movement delta. Once this is read, the interrupt line goes high again until motion is detected. The X and Y delta data is in 2s complement format, so you'll need to convert that. I wrote a little formula in my source code that does this. Usually, you end up with a 1, -1 or 0 after you read that information. That indicates how far to move the related axis. Conceivably, you could receive a larger number, but I think the chip is so fast it reports just a string of 1s. Those report faster the more you move the ball.
As for setting the resolution, there are 41 steps from the slowest resolution to the fastest. I choose to make a capacitive touch button on my trackball that steps from one end to the other, one at a time so I can get just the right speed for any job from CAD work to gaming. You could also just choose a few reasonable step values and tie those to physical buttons. All you do is write a single hex value into a register on the chip to change the resolution on the fly.
Mouse buttons, keyboard strokes and scrolling can be handled with the Teensy and it's easy to use USB HID capability as a mouse and keyboard composite driver under any operating system. It just works. Paul at PJRC did an outstanding job with that. I've not tried his Teensy 3.0 yet...I've only ever played with the 2.0 and 2.0++ versions.
Hope that helps.
-John