Two motors don't work simultaneously on MotorShield v3

  if (Val == 119) // w

Do you promise to keep the comments always up to date? I doubt that will happen. There really is no need to have them at all.
if(Val == 'w')
works just as well, and no comments are needed, and there is no need to consult an ASCII table.

    lMotor.run(FORWARD);    // if I comment this row...
    lMotor.setSpeed(spd);     //... this row...
    rMotor.run(FORWARD);
    rMotor.setSpeed(spd);

Shouldn't you set the speed first, then put it in gear?

There are jumpers on that shield, IIRC. How are they set?