Preheat oven to 375˚F.
Heat a large Dutch oven over high heat. Cook the bacon until crisp and all the fat is rendered. Remove the bacon and set aside for another use. Pat the lamb shanks dry and sprinkle with salt and pepper. In batches if necessary to avoid overcrowding, brown the shanks on all sides over high heat. Remove from Dutch oven and set aside. Lower the heat to medium, and add the celery, half the carrots, the onion, and the leeks. Sauté 3-5 minutes, until tender. Stir in the garlic and cook for 1 more minute. Stir in the tomato paste, and cook, stirring, until the vegetables are well-coated. Pour in the red wine and increase the heat to high. Cook until the liquid has reduced by more than half. Pour in the beef stock and demi-glace, if using, and add the thyme and bay leaves. Set the lamb shanks in the braising liquid and season with salt and pepper. Bring the liquid to a boil, then cover, and place in the oven. Cook for 2-2 1/2 hours, rotating the pot once halfway through the cooking time, until the lamb is very tender.
While the lamb is cooking, place the remaining carrots, the sweet potatoes, and parsnips in a large saucepan. Cover with 2 inches of water, and bring to a boil. Reduce heat to a simmer, and cook until easily pierced with a knife, about 20 minutes. Pour off the cooking liquid, and add the cream to the saucepan. Heat over a low flame until the cream is warm. Transfer the cooked vegetables and cream to the bowl of a food processor. Add the butter and season with salt and pepper. Pulse until you have a smooth, creamy purée. Transfer the purée to the saucepan, cover, and keep warm on the lowest heat until the lamb is cooked and ready to serve.
Remove the lamb from the oven, and transfer the shanks to a plate. Strain the braising liquid through a sieve, and discard any solids. Serve the lamb alongside the root vegetable purée, drizzled with the strained braising liquid.