come mai la scelta di utilizzare delle strutture al posto delle classi? scelta obbligata o del tutto casuale?
solitamente le strutture sono di piccole dimensioni (parliamo di decine di byte), quando assegni la struttura ad un variabile viene generate una copia, non possiedono eredità (eccetto d'interfaccia) e solitamente si evitano I cast.
l'errore che ti viene dato a compilazione è definito dal fatto che anche alle strutture viene fornito un valore di default per le variabili d'istanza, pertanto solo dopo l'allocazione della memoria potrai cambiarlo, ad esempio inizializzandolo o assegnandolo nel costruttore della struttura (deve avere parametri).
Comunque nel caso specifico, possiedi una gerarchia di dati che vanno contro il senso d'utilizzo di una struttura.
Il mio consiglio è di utilizzare le classi, rispettando le regole "non scritte" della programmazione ad oggetti (es: incapsulamento) ed anche quelle del linguaggio specifico C# (es: definizione variabili)