Make the aioli: Mince the garlic, then sprinkle with 1/2 teaspoon salt and mash with the flat side of a chef's knife to make a paste. Transfer to a medium bowl; add the mustard, lemon zest, lemon juice and egg yolk and whisk to combine. Gradually whisk in the olive oil, then the vegetable oil, whisking constantly until smooth; whisk in 1 teaspoon water to loosen. Cover and refrigerate the aioli until ready to use.
Make the broth: Trim the spring onions to about 6 inches; transfer the tops to a large saucepan (set the bulbs aside). Trim the fennel and thinly slice; transfer 1 cup fennel fronds to the saucepan (set the sliced fennel aside). Add the celery, carrot, parsley sprigs, bay leaf, peppercorns and 8 cups water to the saucepan. Bring to a simmer over medium-high heat; reduce the heat to medium and cook, 15 minutes.
Remove the fava beans from their pods. Bring a small saucepan of water to a boil. Add the fava beans and cook 1 minute; drain and rinse under cold water. Slip off the skins; set the beans aside.
Strain the vegetable broth into a wide pot. Add the potatoes and 1 1/2 teaspoons salt and bring to a simmer over medium-high heat; reduce the heat to medium and simmer until the potatoes are tender, about 12 minutes. Transfer the potatoes to a bowl with a slotted spoon. Add the reserved spring onion bulbs and the tomatoes to the broth; simmer 5 minutes.
Make the fish: Score each fish fillet crosswise 3 or 4 times on the skin side (do not cut through to the flesh). Season the flesh side with salt. Add the fish to the pot; add the fava beans and reserved sliced fennel, cover and cook until the fish is just opaque, about 6 minutes.
Divide the potatoes among shallow bowls; top each with a fish fillet, then divide the broth and vegetables among the bowls. Sprinkle with the chopped parsley and top each with a spoonful of aioli. Serve with bread and the remaining aioli.