Preheat oven to 350 degrees F (175 degrees C). Place the onion quarter, and garlic clove on a small pan, and place in the oven to roast as oven comes to temperature. Remove once golden.
Meanwhile, heat 2 teaspoons vegetable oil in a skillet over medium heat. Stir in minced garlic, and cook for about a minute until golden brown and fragrant. Pour in mushrooms, and cook for a minute or two until the garlic flavor has infused the mushrooms, and they are no longer soggy. Stir in the cilantro, then remove from heat.
Prepare the rolls by laying each chicken breast onto your work surface. Spoon some of the mushroom filling onto the center of the chicken breast, then cover with the ham. Roll into a firm cylinder, and secure with toothpicks.
Heat 2 teaspoons of vegetable oil in a skillet over medium-high heat. Add the chicken rolls; sear until golden brown on all sides, about 5 minutes. Place into the preheated oven, and cook until they reach an internal temperature of 160 degrees F (70 degrees C), 15 to 20 minutes.
While the chicken is baking, bring the water to a boil, and blanch the guajillo chiles until softened, about 30 seconds. Place chiles into a blender, along with the tomatoes, roasted onion, and roasted garlic; puree until smooth, using water as needed to make a smooth sauce.
Heat 2 teaspoons of vegetable oil in a skillet over medium heat. Pour in the pureed sauce, and bring to a boil. Pour in the orange juice, season with oregano, and salt to taste. Return to a boil, then reduce heat to medium, and simmer for 5 minutes.
To serve, remove the toothpicks from the chicken rolls, and slice each into 3 or 4 slices. Arrange onto dinner plates, and bathe with sauce.