Place the chicken into a pot with the water, add salt, and simmer over medium heat until meat is falling off of the bones, about 40 minutes. Remove from heat, and cool. Remove chicken from broth, reserving broth. Remove the meat from the chicken, cutting large pieces into chunks. Discard skin and bones.
Meanwhile, place the potatoes into a large pot, and fill with enough water to cover. Bring to a boil over, and cook 8 minutes. Add the celery, and cook 2 minutes more. Drain, and place into a large bowl.
Bring a second pot of water to a boil over medium-high heat. Add the carrots, and cook 5 minutes. Add the onion and cook 3 minutes more. Remove from heat and drain.
Preheat oven to 350 degrees F (175 degrees C). Lightly grease a 9x13 baking dish.
Melt 4 tablespoons of butter in a skillet over medium heat. Stir in the carrots and onion, and cook until tender, about 15 minutes. Mix with the potatoes and celery. Stir in the chicken.
To make the sauce, melt 7 tablespoons of butter in a pot over medium heat. Whisk 6 tablespoons of flour into the butter, and cook until light brown and paste-like, about 3 minutes. Slowly whisk in the cream and 2 cups of the reserved chicken broth. Continue whisking until the mixture thickens, about 5 minutes. Stir in the parsley and green onions. Season to taste with salt and pepper. Pour the cream sauce over the vegetables and chicken mixture, tossing to coat evenly. Spoon the mixture into the prepared baking dish.
To make the Cheddar crust, cut 4 tablespoons butter into 2 cups of flour until the mixture is pea-sized. Stir in the Cheddar cheese and sprinkle the ice water over the mixture, gathering the dough into a soft ball. Knead gently until smooth and elastic. Roll dough out on a lightly floured surface until large enough to cover the entire baking dish. Place over the chicken mixture in the baking dish, tucking in edges to fit. Brush with the beaten egg yolk. Pierce top in a few places with a fork or knife to vent steam.
Bake in preheated oven until top is golden; 30 to 35 minutes.