Also, check your fluid level if you haven't already.
It's not even the same car but I had the same problem. My '99 cavalier would grind only in reverse. I found that my shifter cable had a lot of play. The bushing that held the cable to the shift linkage had rotted away. A new cable was like $140 so instead, I filled the void of the bushing with zip ties. It worked great for years.