Sembra funzionare, ma non riesco più a fare i confronti con i normali puntatori managed:

gcroot<Classe^> * lista;

Classe^ elemento;
if (lista==elemento)...

error C2440: '=' : cannot convert from 'Classe ^const ' to 'gcroot<T> *'

e non sto trovando molte documentazioni online