Ok, I think I know what is going on here. Grub does not know how to replay the XFS journal and your reboot must not be unmounting the fs, leaving it in a damaged state. Mounting or fscking the filesystem from a livecd replays the journal and corrects the errors.
The sync should make sure the filesystem is consistent though, so it sounds like there is a bug in the kernel filesystem driver.
Ok, I think I know what is going on here. Grub does not know how to replay the XFS journal and your reboot must not be unmounting the fs, leaving it in a damaged state. Mounting or fscking the filesystem from a livecd replays the journal and corrects the errors.
The sync should make sure the filesystem is consistent though, so it sounds like there is a bug in the kernel filesystem driver.