Mise en place! Prep potatoes, carrots, parsley, and ham. Pre-heat oven to 350°.
Place potatoes and carrots in a large pot. Cover with water. Salt. Bring to a boil and simmer until tender, approximately 10 minutes. Drain, reserving the water.
In a saucepan, melt 3 Tbsp. of butter over medium-low heat. Stir in parsley, flour, salt, and pepper. Stir until smooth and bubbly. Continue to heat for 2 minutes, stirring.
Mix 3/4 C. of reserved liquid (from boiling potatoes and carrots) and milk. Add to butter/flour mixture in small intervals (approximately 1/4 cup at a time), stirring well after each addition. Continue cooking, stirring constantly, until sauce is thickened.
When sauce is thickened, add cheese in large handfuls, stirring well after each addition. Remove from heat when cheese sauce is smooth and bubbly.
Pour cheese sauce over potatoes and carrots. Gently stir in ham. Transfer to a baking dish. Sprinkle with salt and pepper.
Melt remaining 2 Tbsp. of butter. Stir bread crumbs into butter. Sprinkle bread crumb/butter mixture over casserole.
Bake at 350° for 20-30 minutes until hot and bubbly.
I use leftover ham, but you can also use store-bought ham.