One added comment. A bad */c coupler can affect performance if the knock sensors pick up the noise and retard timing, but that should not throw a P0300 code. Most of the time when I see a P0300 code for a Bonneville, particulary a 15 year old one like yours, it ends up being a bad fuel pump. There are certainly other possible causes, but that one seems to be the most common. If you haven't changed the fuel filter lately, you might want to start with that first, but I suggest you rent a gage (I say rent, but you get your deposit back so it ends up not costing anything) and check fuel pressure.
2001 Bonneville SSEi (retired at 365,000 Kms.)
2014 Jeep Grand Cherokee Overland (yes, I know its not a GM)