Claro, entonces el problema estaba en que no se estaba guardando en <datos> todas las unidades sino que se van sobreescribiendo en cada iteración. Entonces tienes que concatenar todo y preferiblemente como dice Serapis añadiendo un espacio entre cada unidad para separarlos mediante el espacio y mantener los dos puntos...
Código (csharp) [Seleccionar]
datos += mj[syntax].ToString() + " ";
...
string[] unidades = datos.Split(' ');