Place chicken, onion, and garlic in a Dutch oven or large pot, add enough water to cover by an inch. Bring to a boil, then reduce to a bare simmer. Skim off any foam that comes to the surface. Add marjoram, salt & peppercorns after skimming. Continue to simmer for about 20 minutes until chicken is just done all the way through.
Turn off heat and if time allows, for the most tender, moist chicken, cool chicken to room temperature in the broth. (This will take 30 to 45 minutes and will cool faster if chicken and broth are transferred to a wide, shallow container.) If time is of the essence, just remove the chicken from the broth, reserving the broth. and continue.
When chicken is cool, cut it into several smaller pieces and shred with two forks, clean hands, or use a hand or standing mixer. If using a standing mixer, fit with the paddle attachment. Use a guard or a makeshift piece of foil.
Strain the broth and reserve the onion along with the broth. Discard any other remaining solids.
In a blender, add the reserved onion, the chipotle peppers, salt, and a cup of chicken broth. Puree. Add drained tomatoes and pulse several times, making a chunky sauce.
Heat the oil in a large skillet (or deep pan like a Dutch oven) over medium heat. Add in thinly sliced onion and cook until slightly browned on the edges, stirring often. Add minced garlic and cook another minute.
Pour the blender sauce into the skillet, being careful of any spatters. Cook several minutes, then add shredded chicken, marjoram, vinegar, and a very small pinch of cloves. Be careful: clove can be strong and easily overpower this dish.
Taste and adjust seasoning, adding add more of the Chipotle, vinegar, salt, and/or spics and herbs as desired. Simmer gently 15 to 20 minutes, adding some of the juice from the tomatoes if it appears to be too dry. The final dish should be moist but not too saucy.
Notes: