Place the gammon in a large pot and cover with water. Add the carrots, celery, bay and peppercorns. Place the pot over a high heat, bring to the boil, then turn the heat down and simmer for 1 hour 15 minutes with a lid on.
Turn off the heat and allow to cool for half an hour in the broth. Preheat the oven to 180°C.
Transfer the meat to a board and, using a knife, take off the skin.
Score the fat left on the meat and season generously with black pepper. Place the ham in a roasting tray and roast for 20 minutes, or until the fat renders and becomes slightly crispy.
Remove from the oven and rub the marmalade all over the meat, and scatter over the rosemary.
Return to the oven for 30 minutes to 1 hour, basting frequently until you can't resist it any more.