Put the beans in a saucepan and cover with water. Add the quartered onion, the halved carrot and halved celery, the bay leaves, parsley stalks and peppercorns. Bring to the boil, reduce the heat and simmer for 30-40 mins until the beans are soft. Drain well and reserve the cooking liquid, discarding the onion, carrot and celery.
While the beans are cooking, heat half the olive oil in a heavy-based flameproof casserole. Brown the lamb in batches over a high heat. As each batch is cooked, remove it and set aside on a plate. Reduce the heat, add the chopped onion to the pan with the diced celery and carrot and cook until well coloured. Add the garlic and cook for another couple of mins.
Return the lamb to the pan and add all the remaining ingredients, except the beans. Bring to the boil, reduce the heat to very low and cover, then cook for 2 hrs. Add the beans 45 mins before the end of cooking time. Stir the lamb round every so often. If the lamb looks dry, add some of the bean cooking liquid.
Remove the lid for the last 30 mins of cooking time, and season. This helps the cooking liquid to reduce. You should end up with a thick stew of tender lamb and soft beans. Scatter over the parsley and serve.