I have been getting erratic readings from my Garmin HRM, too.
I've tried everything, replacing the battery, being super conscientious with washing after each ride and even scrubbing the metal contacts with toothpaste (to make sure no corrosion or salt buildup interfered with the signals).
Tonight, I discovered that there was a slash in one of the plastic contact patches. It was very hard to see. I'm pretty sure that sweat was getting into the center of the strap and interfering.
New strap is now on order.
I'll let you all know if it cures the problem.