I have a 1999 Chevy Silverado 4x4 Single Cab Truck that I've been having problems with for a few weeks now. I first had problems with the truck having a hard time getting up to speed. I couldn't get on it too hard or the RPMs would max out and this loud clacking/grinding noise would occur. So I had to give it a little gas and just give it time to get up to about 60mph on the highway. Once I got up to 70mph, it was really hard for me to keep it at 70 mph. It kept wanting to drop back down to 60mph and then kick into a lower gear to get back up to speed. The RPMs were constantly going from 2000-3000 RPMs because of this. I first originally thought the engine wasn't getting enough fuel so I replaced the fuel filter (which I found to be clogged with a lot of crud). This seemed to have fixed the problem until recently I started having the same problems again. Not only is it doing the same thing as before but I now have another problem. I got into my truck today, applied the brake to shift out of park, put the truck into reverse, and my truck immediately started accelerating before I even took my foot off the brake! The RPMs went up to about 2000 and the speedometer was at about 15mph-20mph! I then immediately put the truck back into park and the RPMs and speedometer slowly dropped back down along with a loud clacking/grinding noise. It's like my truck is telling me I'm in drive or reverse, my engine thinks I'm in drive or reverse, but my transmission is NOT in drive or reverse. I have no idea what could be wrong. Any help would be greatly appreciated.