they are entitled to the same amount of leave as a full time worker pro rata'd to the hours they work. You don't work it out by shifts but by hours. bank holidays aren't relevant for leave calculation but staff can be made to use part of their annual leave for bank holidays if the service closes for the bank holiday
so Two employees who work the same number of hours over a year should get the same number of hours of leave over a year. The worker who would normally work a bank holiday must use up some of her/his leave to cover the bank holiday of the service is closed, the worker who would not normally work a bank holiday has that leave to take at other times. In both cases, unless otherwise stated in the T and C of the job, ;eave can only be taken with the agreement of the employer and the employer can also insist that leave must be taken at certain times.