おっしゃるとおりクラスに変更したところエラーは出なくなりました。

ググると以下のページのような記述がありました

https://smdn.jp/programming/netfx/valuetype_referencetype/#value_type_property
値型では代入時にコピーが作成されますが、値型のプロパティやインデクサから値を
取得しようとする場合も同様にコピーが作成されます。
値型のプロパティ・インデクサはインスタンスそのものではなくインスタンスのコピーを
返すことから、直接インスタンスを変更することができません。
そのため、次の例のように値型のプロパティを直接変更しようとするとコンパイルエラーとなります。
参照型では変更しようとするインスタンスを参照によって取得することができるため、
コンパイルエラーとはなりません。

>値型のプロパティはインスタンスそのものではなくインスタンスのコピーを返す

ということなのでやはり構造体の型をプロパティにするのは使い勝手が悪そうですね

いっそインスタンス作成時にpublicにしたほうがいいかもと思いました