I suggest to turn your data into a table (Format as Table). You can then rewrite your formulas so they only point to the data in the table and not to entire columns.
If I copy the formula in cell B20 down for 10 rows, its calculation takes as much as 1 second. If I replace that formula
=IFERROR(XLOOKUP(1,(TB!$A:$A=$A20)*(TB!$B:$B=$D$8),TB!$C:$C),"")
with this one:
=IFERROR(XLOOKUP(1,(TB!$A$2:$A$54=$A20)*(TB!$B$2:$B$54=$D$8),TB!$C$4:$C$54),"")
The calculation time for those 10 cells drops to 0.00003 seconds (!)