Interesting conundrum.
There are a couple of ways of going about this.
First up, though, you will simplify your Numbers life significantly if you use separate tables for your data and inputs.
If you're coming from Excel, then a 'sheet' equates to a 'table' and everything in in one huge grid.
In Numbers, though, a single Sheet can have multiple Tables, and this makes it really easy to separate the data (such as your start/end times) from your input and lookup values. Not critical, but I took this approach in recreating your problem.

I solved this by separating out the two XLOOKUPS - one XLOOKUP finds the ROW() that matches the caliber, the other XLOOKUP() finds the COLUMN() that matches the powder:
For example, the formula:
=ROW(XLOOKUP($B$4,Data::A,Data::A,"",-1,1))
will return the ROW() in the Data table that matches the caliber value entered in B4
Similarly, the formula:
=COLUMN(XLOOKUP($B$10,Data::$1:$1,Data::$1:$1,"",0,-1))
will return the column number in the Data table that matches the powder value in cell B10
(note that when using Merged Cells, COLUMN() returns the lowest row/column number, so the lookup returns '2', even though the result spans columns 2 and 3)
Once you have these, you can use them as arguments to an INDIRECT() function to perform the lookup:
=INDIRECT("Data::R"&ROW(XLOOKUP($B$4,Data::A,Data::A,""−1,1))&"C"&COLUMN(XLOOKUP($B$10,Data::$1:$1,Data::$1:$1,"",0,−1)),FALSE)
(for clarity, you could also used two hidden cells to track the ROW() and COLUMN() functions to simplify this)
The same function can be used for the Max lookup (cell D13), just increment the COLUMN() value by 1 to get the adjacent column:
D13:
=INDIRECT("Data::R"&ROW(XLOOKUP($B$4,Data::A,Data::A,"",1,1))&"C"&1+COLUMN(XLOOKUP($B$10,Data::$1:$1,Data::$1:$1,"",0,−1)),FALSE)