Finalmente he enconrado mi problema. La solución es declarar el tipo en la dll con la directiva de compilador {$PACKENUM 1}
así ;
Código Delphi
[-]
type
{$PACKENUM 1}
TColor = ( oBlack,
oWhite,
oRed );
De este modo forzamos e número máximo de bytes de espacio a usar pra los tipos enumerados. El valor por defecto es mas alto y como resultado sucede lo que he planteado en esta tarea. Siento la confusión debido a llamar al tipo de ejemplo Tcolor.