Mushy meat is likely due to overcooking it. When cooking ham, use a meat thermometer to check the internal temperature. It should be cooked to an internal temperature of 145ºF. It will start to dry out and become tough if it gets much above that.