The reason this is such a headache is because it's not that they haven't paid you but that they have stopped you an incorrect amount of tax.
They can't just transfer you the £300 and call it quits because from the point of view of HMRC (I'm assuming you are in the UK with your use of £) that would be an additional payment to you..which would in of itself be subject to (you guessed it) tax.
It does sound like it was their error and you are likely owed that £300 - but in a legal sense it is now HRMC that "owe" you that money not the business. Depending upon where they are in the company's financial year there are potentially things they can do with payroll processes to balance it out because once your tax code is corrected on the next payroll run it will recalculate the tax so that the correct amount is paid over the year (i.e. you will pay less tax until the overpayment from the emergency code is cancelled out) but making payments outside of the payroll process complicates this massively (and HRMC don't really like it)
EDIT: One solution the company could do is they could "loan" you the money against future earnings (essentially an advance) - the threshold for beneficial loans before they get taxed etc is £10,000 so as long as they don't loan you another £9,300 in this financial year there's no further implications or liabilities.