I'm not a CPA or tax lawyer, just an avid reader when it comes to the IRS. I doubt you need a tax lawyer to fix an incorrect 1099-B, so consider looking up a CPA or enrolled agent instead.
It sounds like Vanguard can't possibly know the cost basis, yet both Vanguard and the IRS are claiming a $0 cost basis. I think you should look for "cost basis" in 2 places:
First, in your Vanguard account. Visit the "cost basis" area, and "realized gains", selecting the year you sold. That should show you Vanguard's best information.
Second, the 1099-B. I seem to recall a "taxable amount not determined" checkbox that I think should be checked in this case. It may say $0 for cost basis, but Vanguard can't stand behind that answer. You might get some mileage out of having Vanguard correct their 1099-B form, which in turn would update the IRS information on the matter.
I suggest those because those are easy steps with information you probably already have. You also need to track the money back from Vanguard to the prior company, where you received the shares. Ideally, you would ask them for "cost basis" information on the shares you transferred to Vanguard (ideally, Vanguard would have this information already). Failing that, maybe you can get annual account statements for 2012, 2011, ... as far back as you think useful.
There will probably be costs involved to get that prior company to reproduce old records - but it's worth it compared to what the IRS wants to extract from you. I think consulting with someone will be much more productive if you've managed to get some of the records in advance, so give that a try.