I've two beers turn out with a similar result. One was a dry stout fermented with London Ale yeast. The other was a california common. Luckily after two months, the beers really came together, just in time for Christmas.
What was the cause of the off flavor? I'm thinking mostly diacetyl. The beers were both pretty buttery. The stout actually tasted rather soapy. It was incredibly gross until just a few days ago. I was convinced it was contaminated with soap or infected with wild yeast. But these beers have really come together. The beery tartness was absent, but now it's there. The flavor is crisper, the malt comes out clear and sweet. The bitterness didn't change much in quantity, but its quality changed from offensive to normal. Quite an awesome transformation!
IMO, set it aside, drink one a week, and trouble shoot your attenuation by brewing another beer! Attenuation's the problem I'm wrestling with right now. I keep getting a few points above my target. It has to be oxygenation or temperature fluctuations during fermentation.