He visto muchas cosas raras en programación y esta es una de ellas.
Tras darle una y otra vez la vuelta a lo mismo he eliminado los componentes y los he vuelto a crear. Ahora funciona a la perfección. Lo cierto es que corté y pegué varias veces los componentes TRxMemoryData y sus correspondientes TDataSouce entre varios TForms, e incluso desde otras aplicaciones.
He descubierto otro problema del TRxMemoryData, al cual he encontrado una solución rápida. Se trata del método SortOnFields. Cuando ordenaba por cualquier campo lo que hacía era llenarme los campos con datos "basura". Esto se evita situando el puntero en el primer registro, previamente a ordenar el campo.
Código Delphi
[-]
MemoryData.First;
MemoryData.SortOnFields('NombreDelCampo');
Saludos.