Troublesome hard-drive in LVM — is it broken?

Solution 1:

Try turning off NCQ for the problematic drive (reference: this page and this page)

echo 1 > /sys/block/sdX/device/queue_depth

You might also try changing out the SATA cable to the drive, because a weak/borderline electrical connection might also cause those kinds of errors.

As for your memory problem when running xfs_check; you just need more RAM and/or swap space. That's a pretty big filesystem so I'm not surprised that xfs_check needs a lot of memory.