Place the chicken in a large pot along with the garlic, onion, celery, cilantro, bay leaf, pepper and salt. Cover with water (about a gallon), bring the pot to a boil and then simmer 1 hour. Remove the chicken from the pot and when cool enough to handle, remove the skin and shred either with your hands or 2 forks.
Meanwhile, strain the cooled broth, throwing out the vegetables. Remove the fat from the broth with a gravy separator. Or you can take a quart-sized plastic storage bag and pour some broth into it. Snip a bottom corner of the bag and drain the broth, stopping when you get to the fat layer that is on top. (You will probably have to do this in batches).
Place 1/2 cup of the chicken broth into a blender, reserving the rest for another use. Add to the blender the tomatoes, chipotle chiles, onion, garlic, oregano, cumin, allspice, cilantro and lime juice. Blend until smooth.
In a medium-sized pot, heat up the oil on medium low heat. Pour the chipotle salsa into the pot and cook while occasionally stirring for 15 minutes. It should be a bit darker in color and a bit thicker. Add salt and black pepper to taste and adjust seasonings. With the heat still on, add the shredded chicken to the pot and stir until the chicken is well coated and has been re-heated, about 5-10 minutes.
Serve shredded chipotle chicken with warmed-up corn or flour tortillas, limes and any of your other favorite taco toppings and your favorite salsa, such as a salsa verde.
If you don't have a whole chicken, you can use the equivalent in parts. Likewise, if you have leftover chicken, you may toss it in the salsa instead of starting from scratch.