First off, you want to marinate the lamb shanks for a few hours to really penetrate the deep flavor; the wine also tenderizes the meat. Put the shanks in a large glass bowl and season with salt and pepper. Break up the thyme and rosemary with your hands to release the oils and toss them on top of the lamb. Add the lemon peel, garlic, cloves, cinnamon, peppercorns, bay leaves, and sugar. Pour in the bottle of wine, cover and refrigerate for 4 to 6 hours.
Line a few layers of paper towels on the counter. Pull the lamb shanks out of the wine marinade (reserving it for later), and lay them out on the paper towels, cover with more paper towels and pat the meat dry really well. Put the flour in a large shallow platter and season it with a fair amount of salt and pepper. Dredge the lamb shanks in the seasoned flour; tapping off the excess.
Preheat the oven to 350 degrees F.
Place a large Dutch oven or other heavy-bottomed pot over medium-high heat and add the oil. Sear the lamb shanks, turning carefully with tongs, so all sides are a brown caramel color. Drizzle with a little more oil if needed. Do this in batches if the shanks are big and look crowded in the pot. Strain marinade reserving the wine. Add the wine, remaining 2 sticks of cinnamon, remaining 2 sprigs of thyme and the stuff from the marinade. Cook until slightly reduced, about 5 minutes. Pour in the stock and add the onions, carrots, olives, and apricots; bring to a boil. Cover the pot. Place in the oven for 2 1/2 to 3 hours.
Transfer the lamb shanks to a large platter. Spoon the onions, olives, and apricots over them. Strain the braising juices and season with salt and pepper. Pour the sauce over the platter and serve with some crusty bread.