First make the stuffing. Soften the onion in the butter very gently, then stir in the sage and cook for 2 mins more. Scrape into a bowl with the chopped walnuts, breadcrumbs, lemon zest, mace, chestnuts and egg and mix together well. Season generously.
For the guinea fowl, wash and wipe out the inside cavity. Mix the butter with some seasoning, then push and spread some under the skin over the breasts, and rub the rest over the legs. Lay the bacon across the breasts, smoothing over, and season with some more pepper. Push the stuffing into the cavity (any extra can be rolled into balls and baked in the oven for the last 20 mins cooking time). You can cover and chill the guinea fowl now for up to 24 hours.
To roast, bring the bird out of the fridge 30 mins before. Heat oven to 200C/180C fan/gas 6. Sit the bird in a snug roasting tin with the sliced onion underneath. Roast for 15 mins, then lower the oven to 180C/160C fan/gas 4 and roast for a further 35-45 mins for a 1kg bird (or longer if bigger – use the timings for a roast chicken). Check the bird is done by piercing the inside of the thigh with a knife and making sure the juices are clear, not bloody. Lift the guinea fowl off the onions, onto a platter. Loosely cover with foil, top with a towel (to keep it warm), and rest while you make the gravy.
Pour off the juices from the roasting tray into a jug or bowl, and allow to settle. Spoon a tbsp of the fat on top back into the roasting tray, pop on the hob over a low heat (make sure your roasting tray is suitable or transfer contents to a pan), and stir in the flour until it isn’t dusty anymore. Gradually stir in the stock, plus any meat juices after you’ve discarded the rest of the fat, and bubble gently until thickened. Season with salt, pepper, and pinches of sugar if it needs it, then strain into a gravy jug and discard the onions. Serve with the guinea fowl, spooning out the stuffing as you carve, plus cranberry sauce and plenty of vegetables.