Soak beans in a in 7 1⁄2 cups water overnight. Drain.
Heat 2 tbsp. olive oil in a 6-qt. pot over medium-high heat. Add half the onions and carrots and cook until lightly browned, about 5 minutes. Add garlic and cook until lightly browned, about 1 minute longer. Add ventreche and beans. Add enough water to cover at least 3 inches above beans. Bring to a boil over medium-high heat then reduce heat to low and simmer, stirring often, until beans are barely tender, about 1 hour.
Drain beans (reserving the broth), leave onion, carrot & garlic with beans. Remove Ventrèche, cut into ½ inch dice, set aside.
Meanwhile, heat 2 tbsp. olive oil in a 5-qt. dutch oven over medium heat. Add remaining garlic, onions, and carrots along with the fennel; cook until lightly browned, about 10 minutes. Add tomatoes and cook until liquid thickens, 8–10 minutes. Add wine; reduce by half. Add broth and bouquet garni. Bring to a boil, then reduce heat to medium-low; cook, uncovered, until liquid has thickened, about 45 minutes. Discard bouquet garni. Purée tomato mixture with immersion blender or in a blender. Set dutch oven aside.
Meanwhile, sear duck legs in 2 tbsp. olive oil in a 12" skillet over medium-high heat for 8 minutes; transfer to a plate. Brown sausage in the fat, about 5 minutes; transfer to plate. Pull duck meat off bones. Discard fat and bones.
Heat oven to 300˚.
Stir beans, ventreche, duck and sausages into the tomato mixture. Cover with bread crumbs; drizzle with remaining olive oil. Bake, uncovered, for 3 hours, adding 1/2 cup of your reserved bean broth every hour. Raise oven temperature to 500˚; cook cassoulet until crust is golden, about 5 minutes.
Notes
After your beans are done cooking, be sure to reserve the broth. It will be drizzled over the cassoulet as it bakes in the oven, but you can also use it to make soups.