Please find attached two screenshots of the BANK_HOLIDAYS UDT setup.
Note two things:
1) The example data here includes row names with the year in them. We don't think you need to do that and can just one row called 'New Years Day' that will apply every year
2) In the actual UDT values, you need to make sure each public holiday is for only one day. For example, for New Years Day 2014 you would create the row value with an Effective Date of 31-Dec-2014 and then date-track delete the row (end date) it effective from 31-Dec-2014. Unless the public holiday spans more than one day both its effective start and end date should be the same.