il un tipo object non è in qualche modo compatibile con un tipo qualsiasi di una libreria tipo powerpoint? word? excell o di altra natura?
il vb non fa una conversione implicita con un tipo simile?
Povero VB: di conversioni implicite ne fa già pure troppe !
Scherzi a parte, tu stesso hai detto che vb non è propriamente a oggetti. Forse, se lo fosse, ancora non sarebbe in grado di eseguire conversioni tra oggetti. Si renderebbe necessario overloadare l'operatore di conversione e concependolo in base caratteristiche di due tipi di oggetti specifici da convertire. VB non è a oggetti, quindi addio overloading.

Per quanto riguarda il tuo problema, c'è sotto una questione di concetti: hai a disposizione un'array di oggetti. Non puoi passarlo ad una sub che accetta un tipo Object: sarebbe come passare un'array di stringhe ad una sub che accetta un tipo string...
Modificando l'argomento della sub e rendendolo variant, il tutto funziona correttamente perchè il variant viene convertito (implicitamente) in qualsiasi tipo di dato e nel tuo caso diventa un'array. Se l'argomento viene passato byref, stai sicuro che tutti gli oggetti originali vengono distrutti: il passaggio per riferimento corrisponde a passare per valore il puntatore alla variabile originale. Così, la sub che riceve il parametro agisce direttamente sulla variabile originale.