Storing an array pointer in an array!

OK, just realised what you are saying and that the array is created as a local variable and passed rather than the address.....

That's true here:

void setup() {
 test1[0]="1"; test1[1]="2"; test1[2]="3";
 test2[0]="one"; test2[1]="two"; test2[2]="three";
 Serial.begin(115200);

  testpassarray(test1);

It's not true here:

String test1[10] = {"1","2","3"};
String test2[10] = {"one","two","three"};
String *stored[100];
int numarrays=0;

void setup() {
  Serial.begin(115200);
  testpassarray(test1);

The first code pass a pointer to the local array to the function.
The second code passes a pointer to the global array to the function.

So how can I pass the address of the global variable to the store function

Use the second code, there the array variable IS a global variable.

How do I access the Strings of the global array whilst inside either function when I have the address?

Just like you are doing in the second code.