Choose a pot large enough to comfortably fit the ham and line the bottom with a layer of hay (if using). Nestle the ham on top. Add the spices, herbs, and vegetables, then completely cover the ham with more hay. Fill the pot with enough water to just cover the ham and hay.
Bring to a gentle simmer on medium heat. Continue simmering until the ham is tender and a meat thermometer inserted in the centre registers 160°F (71°C), up to 21⁄2 hours depending on the size of your ham. Use 15 minutes per pound (450 g) as a rough guideline.
Transfer the ham to a baking sheet and let cool at room temperature for 30 minutes. Discard the cooking liquid.
Preheat your oven to 325°F (160°C), with the rack in the centre position.
Using a knife, remove the skin from the ham and shave off some of the fat to even it out. Discard the skin and excess fat. Score the remaining fat all around the ham. Transfer the ham to a baking dish.