This might be a stretch, but since you're using tap water it could be astringency you're experiencing from too high of pH sparge water. It sounds like you are doing everything else right, so I think Yooper's onto something with your water. You should at a minimum get a water report and maybe look into checking you pH levels throughout. Mash, sparge, boil, finished beer, etc. One easy thing to do to eliminate any chance of astringency is to sparge with RO water to ensure your pH isn't getting over 6.