This was a bizarre issue that I eventually figured was due to a recent EE / CartThrob upgrade issue. It was several weeks ago, so I don't have the exact details but this is the basics of it.
When I opened phpMyAdmin, and had a look at the cartthrob_settings table, I saw that the product_channels entry was referencing the wrong channel ids. It was referencing other channels that held regular site content.
I then went to the CartThrob Modules settings > Products tab and deleted the two product channels in there and pushed submit. But that didn't actually update the product_channels entry in the cartthrob_settings table. I would go to the product channels tab and try and add the product channels, but the updated settings weren't being properly set. Tried different combinations of this for about 20 minutes.
At this point, I figured I had a botched recent upgrade. I could have tried just editing directly in phpMyAdmin but I figured that there were probably other things that were out of place.
So I took the store down and uninstalled cartthrob, and went into phpMyAdmin and dropped all the cartthrob tables.
I took screenshots of all the settings I had, reinstalled, applied the settings and everything has been running smoothly ever since. A couple of hours of work, I hope this helps anyone else to figure things out and maybe find a faster route for repairing the issue.