It seems the problem you've run into is that a class reference cannot be tail-const.
Pointers can be tail-const like this: const(Data)* but there is no way currently (there are proposals) to make only the data and not the reference const. A workaround is to use Rebindable in std.typecons. An array of references to const classes becomes: (Rebindable!const(Class))[]