Preheat oven to 400 degrees F. Line a baking sheet with aluminum foil and set aside.
Peel the onions. Trim the stem ends so they will stand upright and remove the top 1/2-inch. Rub oil on each onion and season lightly with salt and pepper. Place in a baking dish, and bake, root ends down, until golden brown and just tender, about 45 minutes to 1 hour (depending upon the size). Remove from the oven and let rest until cool enough to handle. When cool enough to handle, push out the centers, leaving a shell. Return one piece of the removed onion to each to form a bottom and chop the remaining onion centers to measure 1 cup.
In a large skillet, melt the butter over medium-high heat. Add the 1 cup of chopped onion and cook, stirring, for 2 minutes. Add the garlic, apples, salt, and pepper, and cook, stirring, for 2 minutes. Remove from the heat, add the cooked rice, walnuts, sage, and parsley, and stir well. Add 1/4 cup of the cheese and stir well. Stuff the onions with the rice mixture and place in a baking dish. Sprinkle the remaining 1/4 cup cheese over the tops of the onions, and add stock to come 1/2-inch up the sides of the onions. Bake until tender and bubbly, about 20 to 30 minutes, basting occasionally. Serve immediately.