For the fish: Cut a slit on either side of the top fins of the fish. Using your fingers, carefully dig under the skin on one side of the fish, pushing the flesh away from the skin until it is completely loose. Repeat for the other side of the fish. Fillet the fish, starting at the head, along the backbone. This will leave you with two fillets with the skin intact, but separated slightly, to form pockets on each fillet.
Using a spoon, scrape all the meat off the bones, being careful to not include any bones with the meat. Finely chop the scraped meat and add to a large bowl. Add the bacon, cornstarch, soy sauce, pepper, wine, mushrooms, water chestnuts and egg, and mix until smooth. Stuff the mixture into the pockets on the fish, pressing it and packing it tightly.
Heat the oil in a large skillet over high heat. Gently place the fish in the hot oil and cook until golden brown, about 5 minutes. Flip the fish over and cook another 5 minutes. Remove from the pan and keep warm until ready to serve.
For the sauce: Heat the oil in a large skillet set over medium-high heat. Add the carrots, ginger, green bell pepper and red bell pepper; cook for 1 minute, stirring constantly. Working quickly, add 1/4 cup water, the oyster sauce, wine, sugar, pepper, soy sauce and chicken powder, and cook for another 2 minutes.
In a small bowl, mix the cornstarch with 1/4 cup cold water, then add it to the pan and cook until the sauce thickens, 2 minutes.
Slice the fish widthwise into strips, and pour the sauce over the top. Garnish with scallions to serve.