Heat a large pot over medium heat and cook the bacon, stirring occasionally until crispy; remove to a paper towel-lined plate.
Add 2 Tbsp of olive oil to the pot, and then add the ground beef and ground bison. Add the paprika, kosher salt, and fresh ground pepper to the pot. Cook the meat until it is browned, breaking it up as it cooks.
Remove the meat from the pot and reserve it in a separate bowl.
Add the onions, carrots, celery, turnip, parsnip, and garlic to the pot; cook, stirring occasionally until the vegetables are softened, about 7-10 minutes.
Add in the red wine and bring to a boil, scraping up any brown bits from the bottom of the pot.
Add the beef broth/stock, tomatoes, bay leaves, thyme, sage, reserved bacon, and cooked beef/bison.
Stir to combine, reduce the heat to low cover and simmer for ½ hour or more, stirring occasionally.
While the filling is simmering, cook the potatoes in a large pot of salted boiling water until they are tender and drain.
Add the whole milk and butter to the potatoes and mash until smooth. (Note: you can put the potatoes through a ricer if you like).
Preheat the oven to 400 degrees F.
Mix the flour and butter together to form a paste
Taste the filling and adjust the seasoning accordingly.
Add the butter-flour mixture starting with half to the meat mixture and stir to combine; this will thicken the filling. You may need to add it all but start with half adding more until you get the consistency you like. It should have a gravy-like consistency.
Spoon the filling into a 3 quart (9×13) casserole dish and top with the mashed potatoes smoothing it over to cover all the filling.
Beat the egg and water together and generously brush the entire top of the mashed potatoes.
Sprinkle with the grated parmesan cheese all over the top of the baking dish.
Bake for 20 – 30 minutes or until the top is starting to brown and the filling is heated through.
Let rest for 10 minutes before serving.