Assuming that the logic of your formula is correct, you need to put the "built" range addresses inside the INDIRECT function.

=INDEX(INDIRECT("Stock!"&ADDRESS(MATCH(LEFT(T5,FIND(":",T5,1)-1),Stock!C:C,0),11)&":"&ADDRESS(MATCH("Total "&LEFT(T5,FIND(":",T5,1)-1),Stock!C:C,0),11)),MATCH(LEFT(D5,FIND(" ",D5,1)-1),INDIRECT("Stock!"&ADDRESS(MATCH(LEFT(T5,FIND(":",T5,1)-1),Stock!C:C,0),4)&":"&ADDRESS(MATCH("Total "&LEFT(T5,FIND(":",T5,1)-1),Stock!C:C,0),4)),1))