Ja, das Shield sieht gut aus.
Das ist aber leider nicht 100%ig Mega kompatibel. Die PWM Geschichte ist das Problem. Alles andere geht glaube ich.
Die Library macht PWM auf zwei Arten:
1.) über analogWrite() was standardmäßig sehr langsam ist (kann man zwar leicht erhöhen, aber auf 31kHz und der Treiber macht nur 20kHz)
2.) Über einen Timer mit richtigen 20kHz
Das ist aber für den UNO gemacht und der Mega hat die Timer-Ausgänge auf anderen Pins.
Die PWM Pins für das Shield sind 9 und 10. Also OC1A und OC1B. Auf dem Mega ist das aber 11 und 12
Nachtrag:
Ist doch kein großes Problem, da man das direkt in der Hardware anpassen kann:
Es ist also kein Problem das anders zu verdrahten. Man kann die Verbindungen von 9, 10 und 12 auftrennen. Dann legt man PWM auf 11 und 12 und M2EN/DIAG auf 9 oder 10 (vorher Pin 12) 
Dann muss man noch die Library anpassen. Also aus dem hier:
#if defined(__AVR_ATmega168__)|| defined(__AVR_ATmega328P__) || defined(__AVR_ATmega32U4__)
Macht man das:
#if defined(__AVR_ATmega168__)|| defined(__AVR_ATmega328P__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega2560)
Dann wird dieser Code auch auf dem Mega ausgeführt.
PWM geht dann automatisch auf 11 und 12 und die restlichen Pins muss entweder programmatisch über den Konstruktor definieren:
DualVNH5019MotorShield::DualVNH5019MotorShield(unsigned char INA1, unsigned char INB1, unsigned char EN1DIAG1, unsigned char CS1,
unsigned char INA2, unsigned char INB2, unsigned char EN2DIAG2, unsigned char CS2)
Oder man passt das im Header fest im Default-Konstruktor an:
DualVNH5019MotorShield::DualVNH5019MotorShield()
{
//Pin map
_INA1 = 2;
_INB1 = 4;
_EN1DIAG1 = 6;
_CS1 = A0;
_INA2 = 7;
_INB2 = 8;
_EN2DIAG2 = 12;
_CS2 = A1;
}
Letzteres ist weniger Arbeit
Aber probiere es ruhig erst mal normal. Dann kann man es immer noch ändern. Diese niedrigen PWM Frequenz hört man allerdings i.d.R. Deshalb die 20kHz
Und generell mal die Seite gründlich durchlesen:
Da steht auch was zur Wärmeentwicklung:
Each VNH5019 motor driver IC has a maximum continuous current rating of 30 A. However, the chips by themselves will overheat at lower currents. In our tests on a sample unit, we were able to deliver 30 A for a few milliseconds, 20 A for several seconds, 15 A for over a minute, and 12 A for around five minutes. At 6 A, the chip just barely gets noticeably warm to the touch. The actual current you can deliver will depend on how well you can keep the motor driver cool. The shield’s printed circuit board is designed to draw heat out of the motor driver chips, but performance can be improved by adding a heat sink.