I dont know for certain, but you could try playing around with the objects specular, ambient etc values to see if they make a difference or not.
You could try transparency flags or texture filters.. you could maybe use some sort of shader effect on them(unless you dont want shaders) to make them look how you like, using a shader would probably give you more control over the light/lights affecting them, but could also be a slowdown for things like particles.
Anyway, here are some GDK Object commands that may or may not be useful for this :
void dbSetObjectDiffuse ( int iID, DWORD dwRGB );
void dbSetObjectAmbience ( int iID, DWORD dwRGB );
void dbSetObjectSpecular ( int iID, DWORD dwRGB );
void dbSetObjectSpecularPower ( int iID, float fPower );
void dbSetObjectEmissive ( int iID, DWORD dwRGB );
void dbSetBlendMappingOn ( int iID, int iStage, int iImage, int iTexCoordMode, int iMode );
void dbUpdateGhostLayer ( void );
void dbSetObject ( int iID, bool bWireframe, bool bTransparency, bool bCull, int iFilter, bool bLight, bool bFog, bool bAmbient );
The dbUpdateGhostLayer command will affect all objects that are ghosted, ive not used it, but if it works in a similar way to the other "updatexxx" commands that GDK has(eg. dbUpdateParticles() ) then the global update is what it will do(updating their data before the sync basically, so that when it does sync it's performing more than one operation... it can cause slowdown, especially with the particles ones lol, but its the only way to render more that one particle emission position per particle object in a single render loop-with GDK particles)
edit : fixed accidental smileys lol
If it ain't broke.... DONT FIX IT !!!