Preheat oven to 180°C/350°F/ Gas 4.
Put the oranges, a tsp of cloves,onions and peppercorns into a large roasting tray.
Place the ham on top and then pour in 500ml of water.
Cover loosely with greaseproof paper and then cover with a large sheet of foil, making sure to seal around the edge of the tin.
Place in the oven, and then turn the heat down to 160°C/325°F/ Gas 3, leaving it to cook for 5 hrs.
Meanwhile, combine the marmalade with the sugar and 50ml water in a small saucepan, bring to the boil and leave to one side to cool.
Remove the ham from the oven and leave to cool slightly before removing the rind.This is optional and the fat can be left in place if desired. If removing the fat, take care to try to keep as much fat on the ham as possible as this will keep the ham moist while it roasts.
Drain off most of the liquid leaving a little behind in the tin. Increase the oven temperature to 180°F/ 350°F/Gas 4.
Score the fat with a knife to make large diamond shapes.
Brush a third of the glaze over the ham making sure to get it into the creases and cuts. Next, stick a clove in the corner of each diamond.
Place a few halved carrots and celery sticks on the base of the tray to raise the ham off the bottom of the baking tray.
Roast the ham, uncovered, for 45-50 min. Occasionally brush the ham with the rest of the glaze until caramelised. Carve hot or cold.