Start by breaking down what the annual entitlement is and when the holiday year starts. If the holiday year start date is not given in the contract, then the holiday year start date is the first day of employment. It would be usual that holiday can not be carried over from year to year without prior agreement.
Our nanny is entitled to 4 weeks holiday plus Bank Holidays per year and we choose 2 each.
That is quite usual in nanny contracts for a full time nanny.
With a 4 day per week nanny, the statutory minimum would be 5.6 weeks from which bank holidays occurring on a working day can be deducted if not worked. So 22.4 days holiday would be the annual statutory holiday entitlement.
She has taken a day more than this and has worked extra hours to compensate.
So was the agreement that those extra hours were fully in exchange for the extra day?
plus a further half day for more holiday she wants to take later on the year.
So this holiday is yet to be taken but the required hours for that planned time off have been 'banked'. This I presume is the 7 hours mentioned.
As well as this she has had 3 weeks paid holiday chosen by us.
You only get to choose 2 weeks according to what you wrote earlier, so the additional week of your choice you pay in full and is not part of the nanny's holiday entitlement.
Bank Holidays
You need to first work out the start date for the holiday year, then list all the bank holidays occurring on working days between that date and the end of the notice period. You will now have a list of the bank holidays in this holiday year up until end of notice.
You then need to add on the holiday entitlement she has taken so far during the holiday year - so look at when holiday was, whose choice it was and work out the total number of days (or hours if your nanny works different hours on different days).
You then need to work out the Statutory Holiday entitlement (5.6 weeks x days worked per week) and then calculate the percentage of that which applies for the holiday year given the leaving date. If she has worked exactly 9 months then it would be 9/12ths of the annual entitlement.
do I have to pay her for extra hours worked when overall she's had more than her contractual days?
The 7 hours, yes I would pay that as the holiday has been agreed but not yet taken.
You can then cancel that out of the calculations and deal with the rest which is has she had her choice of holidays and has she taken all of her statutory entitlement?