did you happen to have a .git/object/refs/remotes/origin/HEAD (or any file called HEAD under .git/objects)
If that is the case, you might have mistakenly moved some file around at some point in the past.
Otherwise, what is the output of:
git rev-parse refs/remotes/origin/HEAD
and
git cat-file commit $sha1_from_previous_step ?
I'd expect that if the objects that refs/remotes/origin/HEAD points to was really busted, your repo would be unusable.