After messing around a bit I found a unexpected solution. I changed the minimum feed speed in Marlin FW to 1 mm/sec (previously 0) and Z axis now moves as it should. However, I'm baffled as to why this worked. If for some reason the Z axis was told to move at 0 mm/sec this action would pause the printer as it would take an infinate amount of time to reach the specified distance (right?), but instead the printer would continue and print the next layer at the previous layer height.
If anybody understands whats going on, please educate me!
With that said, my problem is solved and prints with Marlin FW have much smoother perimeters than with Sprinter FW.