Heat oil in a Dutch oven or large, wide pot over medium-high heat until the oil begins to smoke. Brown the lamb shanks in the hot oil on all sides until well browned, about 10 minutes. Remove lamb shanks and set aside.
Pour the excess grease from the Dutch oven, reduce heat to medium, and stir in the onions and garlic. Cook and stir until the onions have softened and turned translucent, about 5 minutes. Stir in the carrots, celery, and tomato paste; continue cooking 5 minutes more.
Return the lamb shanks to the Dutch oven, and pour in the stout beer and beef broth. Bring to a simmer over high heat. While you're waiting for the beer to simmer, use kitchen twine to tie together the thyme sprigs, parsley sprigs, and bay leaf into a secure bundle; add to the lamb shanks.
Once the lamb shanks begin to simmer, reduce the heat to medium-low, cover, and simmer until the lamb is very tender and nearly falling off of the bone, 2 to 3 hours. Stir the lamb occasionally as it cooks, and add water if needed to keep the cooking liquid from becoming too thick. You want the cooking liquid to have reduced into a nice sauce by the time the lamb shanks are done.
Stir in the rosemary sprig, and salt and pepper to taste during the last 10 minutes of cooking. Remove rosemary sprig and herb bundle before serving.