Place the ham, vegetables, peppercorns, bay leaf, cider or apple juice and orange pieces in a large saucepan then cover with cold water. Place a lid on the saucepan, bring to the boil then reduce the heat and simmer for approximately 2 hours. When the ham is cooked the skin will peel off easily.
Preheat the oven to Gas Mark 6, 200°C (400°F). Transfer the ham to a roasting tin just large enough to hold it. Using a sharp knife remove the skin. Taking care not to cut into the flesh, score the fat into diamonds. Mix the marmalade and ginger together in a small bowl. Warm in the microwave for 10 seconds, then brush the mixture over the joint. Stud each diamond with a clove. Pour three ladlefuls of the reserved poaching liquid around the ham to keep it moist and bake for about 30 minutes, basting every 10 minutes, until golden brown. Strain the rest of the poaching liquid and freeze. This can be used in soups or sauces.
Remove the ham from the oven and leave to rest in a warm place for at least 15 minutes. Slice thickly and serve.