Preheat the oven to 400°F. Butter a 9x13 inch baking dish and set aside.
Cook the bacon in a large skillet or Dutch oven over medium heat until crisp and browned, about 12 minutes. Remove the bacon from the pan with a slotted spoon and transfer it to paper towels to drain. Pour off all but 2 tablespoons of bacon drippings.
Add the onions, celery and ¼ teaspoon salt. Cook until the onions are golden in color, making sure to occasionally stir and scrape the sides and bottom of the pan, about 10-15 minutes.
Add the apples and sage and cook for another 5 minutes.
Add ½ cup stock and stir well. Cook for about 5 minutes, until the liquid has reduced by half.
Transfer onion mixture to a large mixing bowl. Add bacon, bread, ¾ teaspoon salt, black pepper, parsley and remaining broth; gently mix to combine until mixture is evenly moistened.
Transfer stuffing mixture to prepared baking dish and dot with butter. Alternatively, stuff turkey, chicken or pork loin roast with mixture and bake any remaining mixture in a baking dish, dotted with butter. Cover with foil and bake for 20 minutes.
Uncover and continue to bake until the top is golden, 30 to 35 more minutes. Let sit for 10 minutes before serving.