Place ham, onion, shallot, garlic, carrots, celery, herbs, and peppercorns in a pot and cover with water.
Boil slowly and simmer for 1.5 to 2 hours until tender.
Remove the ham, shred the meat from the bone, and reserve the cooking stock.
Heat a large pan, add butter, peas, parsley, and 750ml of the reserved ham stock.
Stir in 150ml of cream and bring the mixture to a simmer.
Transfer the mixture to a blender and pulse until a smooth purée forms.
Return the soup to the pan to heat through and season with salt and pepper.
Drizzle half the oil on the bread and toast on a hot griddle pan until charred.
Serve the soup topped with shredded ham, a drizzle of cream, and the remaining oil.