Let the ham sit at room temperature 30 minutes. Preheat the oven to 325 degrees F. Trim off any skin from the ham if needed. Score the ham through the fat in a diagonal crosshatch pattern without cutting into the meat. Place the ham, flat-side down, on a rack in a roasting pan. Pour 1/4 inch of water into the bottom of the pan. Roast the ham until it reaches an internal temperature of about 130 degrees F, about 2 1/2 hours or 15 minutes per pound.
Meanwhile, melt the butter in a small saucepan over medium heat. Add the shallots and cook until soft, about 1 minute. Remove the pan from the heat and add the brandy. Return to the heat and continue to cook until the brandy reduces by about half. Add the honey and peppercorns; continue to cook until the mixture thickens, about 15 minutes.
Remove the ham from the oven when it has reached 130 degrees F internally. Increase the oven temperature to 425 degrees F. Spoon or brush some of the glaze all over the ham. Add water as needed to the bottom of the pan. Return the ham to the oven and roast, basting every 10 minutes with the remaining glaze, until well-lacquered and slightly crispy on the edges, about 45 minutes more.