Preheat the oven to 200°C (400°F/gas mark 6).
Put the carrots in a pan with half of the butternut squash, milk, a knob of butter and some seasoning. Put on a low heat, then cover with a lid and simmer for 30 minutes, until the carrots and squash are tender. Using a hand-held blender, blitz to a puree.
Put the rest of the butternut squash on a baking tray, toss with rapeseed oil and season. Roast in the oven for 25–30 minutes, until tender, tossing occasionally to ensure the squash cooks evenly.
Melt the remaining butter in a sauté pan set over a low to medium heat. Add the onion and celery and sauté for about 10 minutes, until well softened but not coloured.
Increase the heat to high, add the barley and cook for 2–3 minutes, stirring, until it’s giving off a nutty aroma. Add the wine and let it bubble down, still stirring.
Reduce the heat to low, then pour in the stock, cover with a lid and cook for 30–40 minutes, until the barley is tender, stirring once or twice to ensure it doesn’t stick to the bottom of the pan. Fold in the carrot and squash puree and season to taste, then fold in the roasted squash with the cooked ham, parmesan and chestnuts (if using), allowing them to warm through.