1. Preheat oven to 350°F; lightly oil a roasting pan. Toast walnuts in a small, dry skillet over medium heat, tossing, 2 to 4 minutes. Transfer to a bowl to cool.
2. Melt butter in another skillet over medium-high heat. Sauté onion and celery until softened, about 3 minutes. Stir in cranberries, raisins and apple. Pour in broth; increase heat to high. Boil until fruit has plumped and liquid has reduced by half, about 5 minutes. Remove from heat; let cool slightly. Stir in thyme, walnuts and bread. Season with salt and pepper.
3. Place pork on a cutting board. Beginning on one end, insert a long, sharp knife into center of roast lengthwise. Repeat on other side so that incision goes all the way through. Using back of a wooden spoon, push through to open up the hole. Push a small bit of stuffing into the hole, using back of spoon to push it farther in. Continue stuffing until hole is full (discard any leftover stuffing).
4. Place pork in pan, fat side down; roast for 30 minutes. Turn it over and roast until a meat thermometer inserted into thickest part reads 145°F, about 45 minutes longer. Transfer to a clean cutting board; tent with foil. Let rest 10 minutes before slicing.
Make It Ahead: To Freeze: Prepare roast but do not cook. Cover tightly in plastic wrap, then heavy-duty foil and freeze. To Serve: Let thaw overnight in the refrigerator. Unwrap, place in a lightly oiled roasting pan and bake as directed.