The reason C6 is returning a #VALUE error isn't because of the INDIRECT function... it's because your arrays are different sizes.
In your example, Months_RA is an array that is 1 row x 12 columns... but each of your months' named ranges are single cells.
Rewriting C6's formula for the named ranges' references, C6's formula is the equivalent of =XLOOKUP(B6,A1:L1,B2), which gives #VALUE error because the 2nd and 3rd parameters are different sizes.
Maybe something got lost in translation as you tried to generalize your actual use into the sample you provided?