Before you get all involved changing parts make sure all you're grounds are clean and secure. Several years ago I had a car that basically was doing the same thing, be running fine then all of a sudden just go bonkers, wouldn't half run and throw every code there was, even for stuff it didn't...