<<. I've run Disk utilities and it says the drive is good. >>
RepairDisk/FirstAid SHOULD be called 'Disk DIRECTORY Repair.' It reads NOTHING outside the directory data structures. Passing that test says the Directory has integrity, but says NOTHING about data blocks.
Bad data blocks have been a problem since the first mass storage devices were invented. Drives are too expensive to discard when they get a data error, or even a handful of data errors. The classical way to deal with them was to have a handful of reserved blocks, set aside for use as "spares" and substitute a spare back when any data block was found to be BAD.
Modern SSD drives use 'over-provisioning', which is just a variation of reserved spare blocks that is now done in plain sight instead of hidden. Modern drive controller are always 'taking names' -- any block that is constantly producing errors is put on a list to be spared out. But this can only be done when new, 'known-good' data are available to write into the blacks. also, SSD drives use dynamic block numbers, so the same data are never placed in the same blocks. (Rotating Magnetic drives use Fixed block numbering.)
Punchline:
erasing and re-writing the drive will eliminate Bad blocks (up to a certain point.) if it is REALLY bad, the Erase will fail.