To make the sauce, melt the butter in a saucepan and stir in the flour, then gradually stir in the stock or water and the vinegar. Bring to the boil, stirring continuously, then reduce the heat and simmer for 2 minutes. Stir in the mustard, parsley, walnuts, capers and chives and simmer for 2 minutes more. Remove the pan from the heat, cover and keep hot while cooking the bubble and squeak.
To make the bubble and squeak, season the slices of meat on both sides with salt, pepper and the ground allspice, then heat 1 tablespoon of the olive oil in a frying pan and fry the meat, a few slices at a time, for a few seconds on each side until golden brown – do not overcook or the meat will become tough. Transfer to a plate, cover and keep hot.
Heat the remaining oil and all the butter in the frying pan, add the chopped onion and cook on low heat for 3–4 minutes, or until softened. Mix in the cabbage and potatoes and cook on high heat, lifting and scraping any residue off the pan, until heated through.
Arrange the meat on top of the vegetables and serve the bubble and squeak directly from the pan with the sauce. If preferred, the vegetables can be transferred to a heated dish, with the sauce passed separately.