Pat skin and meat dry. Rub the skin on roast with baking soda and season the flesh of the roast generously with salt, pepper, fennel and granulated garlic. Let roast stand uncovered in bottom of refrigerator overnight or for several hours.
Preheat oven to 450˚F with rack at center. Arrange garlic bulbs and onions in roasting pan and set roast on flat rack over top or arrange the onions to balance the pork roast evenly in roasting pan. Add stock and cider or wine to pan. Place pork in oven and immediately lower heat to 300˚F, roast 2½ hours, checking after 2 hours that pan is not drying out. Add additional stock if necessary to keep drippings at about 2 cups.
Remove roasting pan and let pork rest 15 minutes, then transfer to a baking sheet lined with foil and return oven to 450˚F. Crisp the crackling on the pork 20 minutes, turning the pan occasionally, remove and let stand a few minutes to slice with serrated knife.
Meanwhile, strain the pan drippings, removing the onion, then separate or skim the fat. You should have about 1 cup of liquid left.
For the gravy, in a skillet, melt 2 tablespoons butter and, when it foams, add 2 tablespoons flour and 1 teaspoon black pepper, whisk in 3 tablespoons chipotle puree, and add ½ cup hard cider, cider or white wine. Add 1 cup each chicken stock and pan drippings and 1 teaspoon each of Worcestershire and maple syrup.
For the salsa, combine the onion, ginger, lemon juice, syrup, salt and peppers, and let stand a few minutes. Add apples, nuts and herbs, then season with cumin and adjust salt.
Serve pork with rolls and tortillas, salsa and gravy.