Prepare the Bouquet Garni: Place the thyme, rosemary, bay leaves, cloves, and peppercorns in a piece of cheesecloth and tie securely with unwaxed kitchen string.
Season the Veal: Pat the veal shanks dry with a paper towel. To help them hold their shape, secure the meat to the bone with kitchen string.
Season generously on all sides with salt and pepper.
Brown the Shanks: In a large Dutch oven or heavy-based saucepan over high heat, melt half of the ghee. Carefully place the veal shanks in the pan and brown on all sides. Do this in batches if necessary to avoid overcrowding.
Remove the browned shanks and set aside.
Sauté the Vegetables: Reduce the heat to medium-high and add the remaining ghee to the saucepan.
Add the sliced onion and cook for 5-8 minutes until softened and lightly browned.
Stir in the minced garlic and sliced celery and cook for another minute until fragrant.
Build the Sauce: Pour in the white wine to deglaze the pan, scraping up any browned bits from the bottom.
Stir in the bone broth, diced tomatoes, and tomato paste.
Bring the mixture to a simmer.
Assemble in Slow Cooker: Transfer the sauce mixture to your slow cooker.
Add the prepared bouquet garni, then arrange the browned veal shanks in a single layer on top.
Cook: Cover and cook on low for 8 hours or on high for 4-5 hours, until the meat is exceptionally tender.
Make the Gremolata: While the Osso Buco cooks, combine the chopped parsley, crushed garlic, and lemon zest in a small bowl.
Mix well and set aside.
Serve: Carefully remove the shanks from the slow cooker.
Discard the bouquet garni and the kitchen string.
Serve the Osso Buco hot with the sauce spooned over, and top with a generous sprinkle of fresh gremolata.
Do not skip browning the veal shanks. This step creates a deep, rich flavor base for the entire dish through the Maillard reaction.