Today I encountered the same issue. Too bad it's my first encounter with Arduino

I have got a Leonardo board and the motor shield, that have to work together. I don't have neither the time, nor the money to buy a Uno (and waste the Leonardo).
After extensive research and some AVR crash-course it looks like pins 3 and 11 are easy, insted of Timer2 they are on Timer0, which on the Leo is 8 bit too. Then when comparing datasheets I noticed that the Leo sets OC0A sets on match, clears on TOP, while the Uno setst OC2A on match and clears it on BOTTOM. Is this difference going to cause trouble?
Pins 5 and 6 seem a bit more tricky, as it's Timer4 that sets them and it's a 10 bit high speed timer with the option to work in 8 bit mode. Again, if I understand the datasheet correctly, unless the extra 2 bits (accessed in a 2-step way, due to the 8bit bus) are set, it works in 8-bit mode.
Then the configuration registers are set a bit differently (4 8-bit registers). There is a wave-form generation mode, but it differs again. "Update of OCR4x at TOP" "TOV4 Flag Set on TOP", while for the timer on the Uno its BOTTOM/MAX. Again I am not sure if this will be a problem.
I am modifing the AFMotor.cpp and will try. The trouble is the only motors I have now are 4V bipolar steppers and the shield is rated for 4.5V+ so maybe the modifications would be enaugh to get the shield working, but it won't be able to power the motor, or it is able to power it, but the modifications won't work. Either way if it doesn't work I won't have a way to know why

The changed code is here:
http://pastebin.com/W8PzChgJIt's only the inline functions defined after
/******************************************
MOTORS
******************************************/
If this actually works I will make it into a patch and make a pull request.