In generale non uso la F.C. nei Report, trovo più efficiente gestire da codice su FORMAT della sezione... puoi provare.
Credo il problema possa dipendere dall'uso di Query un po pesanti.
Io avrei creato una Query con i Dipendenti da visualizzare nel Mese.
Poi su OPEN del report rendevi visibile solo i gg del mese definito, sai che Marzo ha 30gg quindi tutti i controlli fino a 28 Visibili, da 29÷31 non visibili, quindi cicli da 29÷FineMese e visualizzi quello che serve.
In realtà sarebbe utile applicare la Colorazione dei GG proprio su OPEN tanto il mese è solo 1 quindi fatta 1 Volta non la devi ripetere per ogni dipendente, quindi su OPEN cicla da 1÷FineMese ed in base al WeekDay colori il BackColor e ForeColor...
Quì trovi una classe per i Giorni FEstivi:
https://www.iprogrammatori.it/forum-programmazione/access/calcolo-giorni-lavorativi-t50227.html
Su Format del Corpo fai il resto, ricavi le ore di presenza del Giorno per ogni dipendente, se le hai nella Query Raggruppata per Dipendente/Giorno(Filtrata per Mese) direi che è semplice cicli e compili i controlli Unbound, se ti serve altra F.C. aggiunta la applichi quì... sempre da VBA.
Credo che sia tutto più veloce se operi cosi piuttosto che usare Query pesanti e relazionarle.