Preheat the oven to 400F.
Add the potatoes to a large pot and cover with water. Add 2 large pinches of salt. Bring to a boil, reduce to a simmer, and cook until very soft, about 15 minutes.
Add the milk, butter, and garlic powder to a small saucepan and bring to a simmer. Reduce to low and set aside.
When the potatoes are cooked, drain in a colander and return to the pot. Mash with a potato masher or push through a tamis or food mill. Slowly add the milk mixture while stirring constantly to combine and emulsify. Add the sour cream, egg yolk, and stir to combine. Season to taste and set aside.
For the filling, heat the oil in a Dutch oven over medium-high heat until hot. Add the onion and carrot and cook until soft, about 5 minutes. Add the garlic and cook for another minute. Add the meat, breaking it up with a spoon, and cook until no longer pink, about 6 minutes.
Add the flour and stir. Cook for another 2 minutes. Add the tomato paste and chicken stock and stir to combine. Bring to a boil.
Add the Worcestershire, oregano, and thyme. Season to taste. Add the corn and peas and cook for 5 more minutes. Pour meat mixture into a 9x13 baking dish. Top with the potatoes making sure to pay attention to the edges to make a tight seal. Smooth with a spatula. Place on a parchment-lined baking sheet.
Bake for 30-35 minutes or until the potatoes are browned. Let rest for 15 minutes before serving.