Garmin and Wahoo both calculate your wheel circumference based on GPS data over time. Cyclemeter, if I recall does not - you have to set it. That can account for the error.
Also Cyclemeter allows you to set the point at which it starts and pauses when you stop. I was able to change my average ride speed by quite a lot be setting it to turn off and start up at something like 6mph - a speed I never hit when riding only while dealing with traffic.
Those two points are the errors between them.
I have very good (excellent) agreement between Garmin and Wahoo. I've since stopped using Cyclemeter.
J.