Hola.
En los modos con paleta ésta es única para toda la pantalla. En la memoria de vídeo se guardan los colores utilizando un índice que va a la paleta. Por ejemplo, si en la primera posición se guarda el valor "0", cuando la tarjeta gráfica va a mostrar la imagen en pantalla lee ese "0" y luego va a la paleta para mirar los valores RGB que le corresponden a ese color "0", y así para toda la pantalla.
Si tienes un degradado de, digamos, azules, pones tu imagen en la pantalla, y luego cambias la paleta a un degradado de rojos, la imagen que pusiste antes pasará a ser roja, pues la tarjeta gráfica cuando llegue a los bytes en la memoria de video correspondientes a tu imagen que antes era azul, mirará en la paleta (en la nueva) y verá que el color correspondiente al, por ejemplo "0" es un rojol, sin importarle lo más mínimo que en el momento en el que tú escribiste ese color "0" en la memoria de vídeo el valor en la paleta era realmente un azul.
Total, no puedes crear un degradado de un color, pintar la figura, cambiar la paleta y pintar otra figura, esperando poder ver las dos figuras con sus colores diferentes. Para hacer esto tendrías que dividir la paleta, y crear dos degradados, uno de azules (pongamos entre los colores "0" y "127") y otra de rojos (entre el "128" y "255"), y luego usar un intervalo u otro en función del color que quieras darle a la figura.
Espero que te sirva.