Rinse the ham under cold running water. Pat dry and place on a work surface. With a sharp knife, score parallel lines, 1 inch apart and 1/4 inch deep, across the rounded skin side of the ham. Turn the ham 180° and score in a similar fashion to create a grid pattern across the ham. Put the ham in a 2-gallon plastic garbage bag.
Combine the remaining ingredients in a large mixing bowl, whisking to mix. Pour the mixture into the bag with the ham and seal. Gently squeeze the bag to evenly distribute the marinade around the ham. Refrigerate for 24 hours.
Preheat the oven to 350°F.
For the potatoes: Cut the potatoes in quarters lengthwise and put in a large mixing bowl. Toss with the vegetable oil, salt, cinnamon, allspice, and sugar. Arrange the potatoes in a layer on the bottom of a large roasting pan. Remove the ham from the bag and reserve the marinade. Set the ham, scored side up, on top of the potatoes. Bake for 45 minutes. Pour the marinade into a medium saucepan and bring to a gentle boil over medium-high heat. Reduce the heat to low and simmer, uncovered, until it has thickened and will coat the back of a spoon, about 20 minutes.
Remove the ham from the oven and evenly baste all sides with the marinade. Return to the oven and bake for 15 minutes. Remove the ham from the oven and baste again. Turn the sweet potatoes. Return the ham to the oven and bake, basting every 15 minutes, for 1 1/2 hours.
Remove from the oven and allow to stand for 15 minutes before carving. Serve with the sweet potatoes.
Yield: 8 servings