Heat 2 tablespoons olive oil in a Dutch oven over medium-high heat. Season the shanks with salt and pepper and brown them in the Dutch oven, turning once, until well-browned, about 4 minutes per side. Transfer the shanks to a plate.
Discard all but 1 tablespoon of the oil and return the Dutch oven to medium heat. Add 2 garlic cloves and cook, stirring, until lightly browned. Add the tomato paste and cook, stirring, until caramelized, about 2 minutes. Raise the heat to high, pour in the wine, and reduce by 1/4. Add the veal stock, 1 thyme sprig, rosemary, and bay leaf and bring to a boil. Arrange the shanks in the Dutch oven, cover, and transfer to the oven. Braise the shanks until the meat is tender and pulling away from the bone, about 2 1/2 hours. Remove from oven and let rest for 30 minutes.
Raise the oven to 350 degrees F.
Heat the remaining 2 tablespoons oil in a large ovenproof skillet over medium-high heat. Add the potatoes and cook, stirring, until golden brown. Add the fennel strips and cook, stirring, until lightly browned. Stir in the remaining garlic clove and thyme sprig and season with salt and pepper. Transfer the skillet to the oven and cook until the potatoes are tender, about 10 minutes.
Sprinkle the fennel-potato mixture with fennel seed and shallot and cook 2 minutes more. Turn off the oven, and leave the skillet inside to keep warm.
Meanwhile, make the pesto: Combine the parsley, garlic, and lemon zest in a food processor and pulse until chopped. While the motor is running, drizzle in the oil until a smooth paste is formed. Season with salt and pepper.
When ready to serve, divide the fennel-potato mixture among plates and sprinkle with a little of the reserved fennel fronds. Place a veal shank on each plate, spoon over some of the sauce, and top with a little of the pesto. Sprinkle shanks with the sea salt and serve.