Try adding the sheet name to your name ranges.
Change your RoleTable from $A$1:$C$3 to Sheet1!$A$1
and then change your index formula to an offset formula
=OFFSET(RoleTable,1,MATCH(Role,RoleHeaders,0)-1,CHOOSE(MATCH(Role,RoleHeaders,0),COUNTA(Sheet1!$A:$A),COUNTA(Sheet1!$B:$B),COUNTA(Sheet1!$C:$C),COUNTA(Sheet1!$D:$D),COUNT(Sheet1!$E:$E))-1,1)
You should be able to do all that through the Name Manger on the Formulas ribbon.
I just caught the part where you were trying to make it dynamic. Instead of 2 in the offset formula, you could replace that with a CountA(C:C). my problem right now is I am trying to figure out how to generate the select the whole column reference when you are dealing with the number of the column.
You could do it with indirect and CHR() but I was hoping there was something cleaner...Still have to look at the address formula.
UPDATE
Here is a screen shot of my Name manager, note I was testing with data on sheet6 and calling from sheet7. This should be the same as your sheet1 and sheet 2

This is an copy of the cut off offset formula. If should be the same as the one above with the exception that it is referencing sheet6 instead of sheet1:
=OFFSET(RoleTable,1,MATCH(Role,RoleHeaders,0)-1,CHOOSE(MATCH(Role,RoleHeaders,0),COUNTA(Sheet6!$A:$A),COUNTA(Sheet6!$B:$B),COUNTA(Sheet6!$C:$C),COUNTA(Sheet6!$D:$D),COUNTA(Sheet6!$E:$E))-1,1)
That will handle up to 5 columns of source pulldown items. I think choose has a limit of 6 so you could add another counta. Seems I had count instead of counta for the 5 choice at column E:E. I just corrected that in the posted version.
This is the test data I had on my sheet6 which would be your sheet1:

Here is an image of the choosing of Role in sheet7 (your sheet2) cell A1. notice there is no formula in the cell.

Here we see you dependent dynamic drop down list in action only showing 2 entries.

And here we can see the list has expanded to catch an added name to the drivers list.
