I know this thread is a bit old, but I just ran across it as I was searching for an answer and wanted to add to the collective knowledge of what worked for me.
It appears that this issue is likely to be caused by http caching on the server (repo) side. The reason that "yum clean all" won't fix the problem immediately is because yum will just download the cached out of date metadata file again. Until the repo http server's cache times out and caches the new metadata file, you'll keep getting the old metadata file and yum will keep complaining.
You can instruct yum not to use http caching, however. To do so globally, just add this option under the [main] section in /etc/yum.conf:
Now run
yum clean all and
yum check-update and you should be good to go!
I haven't tested it, but I would assume that you could also specify this option at a repo level instead of globally if you prefer.
All credit goes to this excellent article:
http://plone.lucidsolutions.co.nz/li...match-checksum