My CPS experience was exactly what you are seeing Rich S.
I got the CPS and VANOS sensor codes, then I would clear them and they would return anywhere from the same day to a couple of days (not as many as 20 days though).
The sensor itself fails intermittently and it only gets worse. Replace the sensor and clear the codes and it will not come back. This is not a symptom of bad wiring, it's the sensor.
CPS is not expensive to fix on the scale of things, and it is a possible DIY depending on your handiness. The only problem is that you can't see much behind the motor so you have to do most of it by feel. I used a mechanic's mirror on a telescoping rod and took my time, looking at each step of what I was about to do with the mirror before removing anything. It turned out to be not as bad as I was expecting.
Anyway the downside of not fixing it is bad performance and I suppose possible misfires if the timing is way off. I couldn't stand not having all of the car's power when I wanted it and not knowing if it would lose power at higher revs just when I didn't want that, and the SES light. It made me apprehensive to drive.
I think for peace of mind you should do it sooner rather than later.
My $.03 !
Cool, just in time, when I go to post my problem I see the above posts which seem to be very similar to my problems...by the way if you guys don't mind please keep me posted on the repairs you do and how they work out for you!
Ok, I finally got a Peake FCX 3. I was going to get just an Innova 3100 like Bread said (I like it too!) but I realized one important advantage to the Peake- I'm keeping my M5 for the REST OF MY LIFE and this board is my primary reference for everything M5 and most of the members here have a Peake and when I used the Innova scanner and posted the codes here 1) I couldn't get any conclusive answers to my questions as to what the codes meant 2) I wasn't even able to pinpoint myself what the codes meant after days of research. But I see it all the time, somebody posts a Peake code and boom! 100% response and definitive answers
So I took my new Peake out, actually read all the instructions, checked my SES light, and got the numbers 16 and 71. Book says first number is not a code but the table you use, so I go to table 16, which in turn says "see table 11", ok, I go to table 11, code 71-not present! It simply is not there, I am so confused! I followed the directions, now what? So I go here to get some answers, and read "ignore all tables except table 18, that is the only one that applies to the e39"!!! What?!? My car and my book told me that I need table 16, so what's going on? Am I retarded?
And if I do go by table 18, can somebody please ellaborate on codes 16 and 71 if they do really both count as codes please and what I need to replace...thank you very much!