In a large skillet, melt 2 tablespoons (1/4 stick) of the butter. Add the onions and celery. Season with salt and pepper. Cook the vegetables, over medium heat, until translucent, 3 to 5 minutes. Remove the skillet from the heat and transfer the contents to a bowl. Set aside.
Arrange the bread slices in a single layer on a baking sheet and toast until light brown. Alternatively, brown them in a toaster. While the bread is still hot, lightly butter both sides of each piece. Cut into 1-inch squares and transfer them to a large bowl. Toss with salt, pepper, the thyme, sage and rosemary. Mix to blend. Set aside.
Heat a tablespoon of the butter and, in a small skillet, quickly saute the heart and gizzard pieces, 30 seconds. Season with salt and pepper. Remove from the heat and add it to the bowl of celery and onions. Stir to blend.
Heat a large skillet, add another tablespoon of the butter and saute the pepperoni pieces over high heat for 2 to 3 minutes. Drain on a paper towel.
Combine the celery and onion mixture, the cooked breakfast sausage, the mozzarella and the pepperoni in the bowl containing the toasted bread. Mix to blend and add the cup of chicken stock to moisten all of the ingredients.
Place the turkey on a flat surface, season with salt and pepper on the inside and out, and stuff the cavity with the stuffing. Truss turkey or, alternatively, tie the legs closed with a strong piece of kitchen twine to assure the stuffing doesn't fall out as the turkey roasts. Wrap any remaining stuffing in tinfoil and keep the tinfoil fairly flat, like a large envelope. Transfer the turkey to a roasting pan, fitted with a roasting rack if desired, and soak the cheesecloth in the butter. Brush any remaining butter on top of the bird and cover the breasts with the cheesecloth to prevent the top skin from burning before the turkey is cooked. Lower the oven to 350 degrees F and place the roasting pan in the center of the oven. Cook the turkey for about 12 minutes per pound.
After about 2 hours cooking, remove the roasting pan and place the tinfoil package containing the stuffing in the bottom of the pan. Remove the cheesecloth from the top of the breasts and return the turkey to the oven. Place the neck and the chicken stock for the gravy in a pot and simmer gently on top of the stove as the turkey finishes cooking. The stock should reduce by about half. Season with salt and pepper, if desired.
How do you know when it's done? The temperature of the thigh meat (where the meat is thickest and takes the longest time to cook) should register 165 degrees F when tested with an instant-read thermometer. When done, remove the bird from the oven, transfer it to a flat surface (or serving platter) and allow it to rest for 20 to 30 minutes before removing the stuffing and carving the meat.
Make the gravy: Unless the bottom of the roasting pan is burned, you can make delicious gravy. Place the roasting pan over the burners on the stove, add the mustard and Marsala to the pan and warm it over low heat. Scrape the bottom to get the drippings and tasty bits off the bottom of the pan as the Marsala reduces.
Strain the neck out from the stock and pour about 1/2 cup into a small bowl. Whisk the flour into the bowl, taking care there are no lumps. Reduce the Marsala until there is almost no liquid. Add the remaining chicken stock and the flour mixture to the roasting pan. Whisk to blend. Taste for seasoning. Reduce until the mixture thickens. Transfer to a gravy boat!