Similar, I'v had issues with using the exact same Marlin firmware on one manufacturers Mega 2560 to another manufacturers version. Supposed to be the same...
Follow up on this.
Finally got this thing working reliably and even got homing and limiters functioning.
Couple things...
1.) I ordered another Arduino Uno+CNC Shield +A4988 set. Got everything installed and it still acted exactly the same aka not working.
2.) What I realized was that I was using OpenBuilds to flash GRBL. It turns out it flashes 1.1 and the CNC Shield I have is only compatible with 0.9 and under. So I reflashed it with 0.9j using the Arduino SDK.
After that, stepper control became consistent and reliable. I haven't fine tuned the amperage to the drivers but gave them a quarter turn from stock and they seem to be happy.
3.) Limit switches were throwing constant alarm code. After messing with it, I figured out that that my switches are C-NO-NC and I had them wires to default closed, when it should be open and close when triggered.
Even after fixing that, still has constant alarms. After unplugging and plugging stuff in, I realized X and Y worked, Z didn't. I rewired them a half dozen times, changed the switches and still the same result.
After googling, I found out vanilla CNC Shield v3.0 is actually designed for GRBL 0.8c and the pinout is different for 0.9j that I'm running. There is no bottom Z limiter, and the top Z attaches to the spindle activation pins. After changing that it works 100%
Will post some pics/vids when I put the guts back in.