Place the ham skin side up on a cutting board and, with a sharp knife, score parallel lines in a grid pattern, with cuts 1-inch apart and 1/4-inch deep, across the ham.
In a large bowl, whisk 1 cup of sugar, fresh orange juice, mustard, molasses, drained horseradish, cayenne, and 1/2 teaspoon of the allspice together. Place the ham in a seal-able plastic bag and pour the marinade into the bag. Gently squeeze the bag to evenly distribute the marinade around the ham. Place the bagged ham in a large bowl or baking dish and refrigerate for 24 hours.
Preheat the oven to 350 degrees F.
Peel and quarter your sweet potatoes and set in a large mixing bowl. Toss the potatoes with the vegetable oil, salt, cinnamon, remaining 1/4 teaspoon allspice, and remaining 2 teaspoons dark brown sugar. Layer the potatoes on the bottom of a Dutch oven or large, heavy roasting pan. Remove the ham from the marinade and place it scored-side up on the potatoes. Bake for 45 minutes.
Pour the ham marinade into a 2-quart saucepan and bring to a light boil over medium-high heat. Reduce the heat to a simmer and cook uncovered about 20 minutes, or until thick enough to coat the back of a spoon. Remove from the heat.
Using the reduced marinade, baste the ham every 15 minutes with a baster for a total cooking time of 2 and 1/2 hours. Turn the potatoes at least once during this time.
Remove from the oven and let rest for 15 minutes before carving. Serve hot with the sweet potatoes.