How to Make It
In a large saucepan, combine the tomatoes and their liquid with the vinegar, 2 cups of water, the honey, molasses, tomato paste, garlic, chipotles, kosher salt, coriander seeds, cumin seeds, peppercorns and bay leaf and simmer over low heat for 2 3/4 hours, stirring occasionally. Let cool.
Working in batches, puree the barbecue sauce in a blender. Refrigerate 1/2 cup of the barbecue sauce. Put the ham in a deep bowl or pot and pour the rest of the barbecue sauce over it. Turn the ham to coat it, then cover with plastic wrap and refrigerate overnight. Bring the ham to room temperature before proceeding.
Preheat the oven to 400°. Transfer the ham from the marinade to a roasting pan; reserve the marinade. Add 1/2 cup of water to the roasting pan. Season the ham with salt and pepper, brush it with some of the reserved marinade and roast for 30 minutes. Reduce the oven temperature to 300°. Cover the ham loosely with foil and roast for about 4 hours longer, basting it with the marinade every 15 minutes and adding a few tablespoons of water to the roasting pan when it seems dry. The ham is done when an instant-read thermometer inserted into the thickest part registers 145°. Discard the remaining marinade.
Transfer the ham to a carving board and let stand for 20 minutes. Pour the juices from the roasting pan into a bowl and skim off the fat. Return the juices to the roasting pan and set it over moderately high heat. Add the chicken stock and bring to a simmer, scraping up any browned bits from the bottom of the pan with a wooden spoon. Stir in the reserved 1/2 cup of barbecue sauce and bring to a boil. Pour the barbecue sauce into a warmed gravy boat.
Carve the ham and serve with the barbecue jus and the Ancho-Fig Compote.