Preheat oven to 325°.
Remove neck, heart, gizzard, and liver from turkey. Reserve neck, heart, and gizzard for Homemade Turkey Stock; discard liver. Rinse turkey thoroughly with cold water; pat dry. Trim excess fat. Combine onion, celery, 1 tablespoon rosemary, 1/2 teaspoon salt, and 1/4 teaspoon pepper. Stuff body cavity with onion mixture. Tie ends of legs with twine. Lift wing tips up and over back; tuck under bird.
Place a roasting rack coated with cooking spray in a roasting pan. Place turkey, breast side up, on rack. Brush with butter; sprinkle evenly with 1 teaspoon salt and 1/4 teaspoon pepper. Pour 1 cup Homemade Turkey Stock in bottom of pan. Insert a meat thermometer into meaty part of thigh, making sure not to touch bone. Cover turkey breast tightly with foil. Bake at 325° for 2 hours, basting with 1/3 cup Homemade Turkey Stock every 30 minutes (1 1/3 cups total). Remove foil; bake an additional 1 1/2 hours or until thermometer registers 180°, basting with 1/3 cup Homemade Turkey Stock every 30 minutes (2/3 cup total). Remove turkey from oven; let stand 30 minutes. Discard skin.
Place a zip-top plastic bag inside a 2-cup glass measure. Pour pan drippings into bag; let stand 10 minutes (fat will rise to the top). Seal bag, and snip off 1 bottom corner of bag. Drain pan drippings into a measuring cup, stopping before the fat layer reaches the opening. Reserve 2 tablespoons fat, and discard remaining fat. Combine the pan drippings with 2 cups Homemade Turkey Stock.
Heat 2 tablespoons reserved fat in bottom of roasting pan over medium heat. Add flour, stirring with a whisk. Cook 1 minute, stirring constantly. Stir in the pan drippings mixture. Combine water and cornstarch, stirring with a whisk. Add the cornstarch mixture to pan, stirring with a whisk. Bring to a boil, stirring frequently. Add 1 tablespoon rosemary. Reduce heat, and simmer 5 minutes or until sauce thickens. Stir in 1/4 teaspoon salt and 1/4 teaspoon pepper. Serve gravy with turkey.