however she received a letter about a tax code change a year or so ago and the equation was annual salary (which was correct) + bik. Almost like the salary sacrifice doesn't exist according to HMRC.
I think this is where you are getting confused -
example of how it will work
normal salary 20k
salary sacrafice 4k
taxable pay as declared on p60 16k
first up confirm the above works as described and if it does everything is in order - salary sacrifice has reduced taxable pay and therefore less tax has been deducted than would have been the case had the salary sacrifice not been in place.
anything else that doesnt make sense is nothing to do with whether the salary sacrifice is correct or not and will be down to tax coding issues.
reference tax codes issued - these arent always 100% accurate and sometimes result in a post year end adjustment (p800 or simple assessment) meaning tax is owed or a refund is due.
Generally speaking unless the figures on your p800/simple assessment are known to be wrong they will put you back in the correct tax position - in this regard the salary should be the 16k detailed above and the car benefit should be as declared on the p11d.
due to delay in car benefit amounts appearing on your tax code its not that unusual that tax is owed at the year end.
If you havent had a year end p800/simple assessment and the P11D benefit in your tax code doesnt match the one provided by your employer you should ring hmrc to discuss the implications - you can score here as generally they wont bill you after the year end if the underpayment of tax is less than £50
Note you actual salary level doesnt show up anywhere on your coding notice so is non relevant.
This all started because after the car went back in July this year, her tax code changed to go up, but didn't go back to normal. When she spoke to HMRC about it, they explained that they hadn't had some of the information from her payroll department over the whole term and she might have been taxed wrong. They immediately put her back on the normal personal allowance tax code.
Generally this will all come out in the wash after p11d is submitted and we reach this time of year - anything hmrc processed before the issue of the p11d in juneish is likely to be amended back to the p11d details supplied by the employer
in summary unless the p11d figure on your tax code / end of year tax calc are different than the employer provided totals everything will likely be correct even though that may end up with an assesment of tax.