If you have a fish poacher, here is your chance to use it. Otherwise, use a roasting pan big enough to fit the whole fish. Put the fish in the pan and add enough water to almost, but not quite, cover the fish. Bring to a light boil. Pour out all the water.
Stuff the onion slices into the cavity of the fish, and put all the other poaching ingredients and the cheesecloth bag of seasonings into the pan. Add the same amount of water you used in the first step. Bring the pan to a light boil, then lower to the point that only the occasional bubble breaks. Poach the fish for 30 minutes. Remove the fish to drain. Strain the poaching liquid and set aside. Dispose of the vegetables and the cheesecloth bag.
When the fish cools enough that you can handle it, remove the onions and fillet the fish. Cut the fillets into pieces about the size of your finger.
Bring a saucepan of water to a boil and parboil the potatoes and carrots for about five minutes. Drain and reserve.
Sauté the salt pork or bacon in a large saucepan over medium heat until well browned. Add the onions and fennel and sauté until the onions are translucent. Add the potatoes, carrots, and the fish-poaching liquid or the oyster liquor. Bring the pan to a light boil and cook until the potatoes and carrots are tender.
Add the fish and the half-and-half, lower to a very light simmer, and cook for about ten minutes. Add the oysters, salt, pepper, and cayenne. Cook for another two or three minutes. Taste the broth and adjust seasoning with salt, pepper, and cayenne.