A "BR" tax code means that you are treated as having a zero personal allowance, rather than the standard £6,475 - this will be why you have been taxed on your income when using this code. Without going into the full mechanics of PAYE, I'd expect you to pay no Income Tax with a code of "647L" given your current level of earnings, so the treatment during your previous job sounds fine.
It does sound like you're being badly treated by your employer with them not processing your P46 from November. If they had done so, I'd expect you to have been put onto the correct tax code (probably, though not definitely, "647L[noparse]")[/noparse]. If you have no confidence that they'll process the form if you complete a second once then I strongly recommend discussing this over the phone with your tax office, as they are there to help with this sort of thing.
However, the good news id that whatever the state of your employer's relationship with the tax authorities this shouldn't affect your ability to reclaim overpaid Income Tax from previous tax years. For this, the P46 isn't relevant. All that you'll need to send to your tax office is a copy of your P60 with a cover letter explaining that you'd like a refund. As a worst-case scenario, if you're unable to get your tax code corrected then the route of contacting your tax office directly for a refund will still be open to you for tax that you're suffering in the new tax year, though you'll have to wait until the end of the tax year or until you leave the job.
If you leave the job before the end of the tax year, the reclaim procedure is a bit different, as there's a form to complete (a P50:
http://www.hmrc.gov.uk/pdfs/p50.pdf) and you should accompany this with Parts 2 and 3 of the P45 that you should receive from your employer when you leave them, rather than a P60.