Remove ham from refrigerator (keep the wrapping on), place in a large stock pot, and place stock pot in sink. Run hot tap water over ham into stock pot until ham is submerged. Allow ham to soak 45 minutes. Drain water from stock pot, fill again with hot tap water covering ham, and allow to soak an additional 45 minutes.
Adjust oven rack to the lowest placement and preheat oven to 250F. Remove ham from stock pot and remove wrapping. Wrap ham well in tin foil and place cut-side down in a large roasting pan.
Roast ham at 250F 1 to 1-1/2 hours until ham registers 100F (about 12 min per pound).
While ham is roasting, prepare the glaze by bringing honey, marmalade, juices, zests, and butter to a simmer over medium heat. Reduce heat to medium-low and allow glaze to simmer 8-10 minutes, stirring frequently until glaze is reduced and slightly thickened. Season glaze with salt and pepper to taste and cover to keep warm (if glaze thickens too much while sitting, gently heat over low heat until melted).
Increase oven heat to 350F and remove ham from oven. Carefully peel back foil with a tongs. Brush about 1/3 of glaze over ham, return to oven, and bake an additional 10-15 minutes until glaze turns into a sticky coating on ham.
Remove ham from oven, transfer to a cutting board, and brush entire ham with another 1/3 of glaze. Cover ham loosely with tin foil and allow to rest 15 minutes.
While ham rests, heat remaining 1/3 glaze with about 1/2 cup ham drippings from roasting pan, whisking until a smooth sauce forms. Keep warm for serving.
Carve ham into thin slices and place on a serving tray. Serve ham warm with additional warm citrus glaze spooned on top. Enjoy!