Alinhado ou sobreposto incorretamente por um erro de campo que não é objeto

Estou tentando criar a seguinte estrutura:

    [StructLayout(LayoutKind.Explicit, Size=14)]
    public struct Message
    {
        [FieldOffset(0)]
        public ushort X;
        [FieldOffset(2)]
        [MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
        private ushort[] Y;
        [FieldOffset(12)]
        public ushort Z;
    }

e recebo o seguinte erro:

Não foi possível carregar o tipo 'Mensagem' do assembly porque ele contém um campo de objeto no deslocamento 4 que está alinhado incorretamente ou sobreposto por um campo não objeto.

Alguém sabe por que isso está causando um erro?

Nota: Eu não posso usar o Pack porque estou trabalhando com o framework compacto. Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion