Put the gammon in a large pan and cover with cola. Add the carrot, onion, celery, cinnamon stick, peppercorns and bay leaf. Bring to the boil, then turn down to simmer for around 2 1/2 hrs, topping up with boiling water if necessary to keep the gammon fully covered.
Carefully pour the liquid away, then let the ham cool a little while you heat the oven to 190C/170C fan/gas 5. Lift the ham into a roasting tin, then cut away the skin leaving behind an even layer of fat. Score the fat all over in a criss-cross pattern.
Mix the glaze ingredients in a jug. Pour half over the fat, roast for 15 mins, then pour over the rest and return to the oven for another 30 mins, baste half way through. Remove from the oven and allow to rest for 10 mins, then spoon more glaze over the top. Can be roasted on the day or up to 2 days ahead and served cold.