Plugs are a cheap and easy fix, so do it anyway. If it still has issues, pay a garage to look at it - they'll probably find the source error code which is triggering all the others (we hope).
For better info, we'd need a list of all the codes found.
Maybe a leaking injector
High CO is typically rich but your lambda says otherwise - I'm unfamiliar with your exact testing (England? - Petrol what is that? :) ) so I don't know what it means.
I typical lambda sensor (oxygen sensor) averages about .5 volts and swings wildly at idle. They way you know its working is the swinging back and forth).
A too rich ...