No. Unfortunately, there isn't a way to overwrite a "public holiday" for only specific employees or branches.
As an alternative, you can consider the following approach:
a) Delete the public holiday from the calendar.
b. Ask the employees to apply for leave on that day.
c. Recreate the public holiday on the calendar afterwards.