Stepper control with buttons - simultaneous buttons press issue

  pinMode(XM,  OUTPUT);
  pinMode(XP,  OUTPUT);
  pinMode(YM,  OUTPUT);
  pinMode(YP,  OUTPUT);

Switches don't normally get driven. What ARE you thinking?

Why are you not using the Stepper, or AccelStepper, library?

I am able to control one motor at the time just fine

The key there is "one at a time". Your code for stepping is blocking, so pressing more than one switch (you do NOT have buttons - buttons keep shirts closed) will NOT make two motors move at the same time.

If I would press one buttons for each stepper then one of the steppers appear to be running but with half the speed it was doing originally and the other would do the same or just stall.

This isn't a coding problem. You have an inadequate power supply - one that is not capable of providing enough current to move both motors at the same time.