Ciao ,
il tuo è semplicemente un problema di antialias!

Il formato gif supporta solo la trasparenza totale , per cui se rimuovi i pixels che contornano l'immagine (di fatto togli l'antialias) , l'immmmagine apparirà seghettata , ma la potrai mettere sopra tutti i background.

Se non rimuovi i pixels intorno , allora l'immagine stà bene solo su un bacground (che poi è lo stesso verso il quale , l'algoritmo di antialias ha distribuito i pixels extra sui bordi).

Per cui una gif trasparente stà bene su qualsiasi bacground solo se può fare a meno dell'antialias (es. alcuni testi piccoli . oppure rettangoli e/o linee verticali o orizzontali o a 45°) , se non puoi farne a meno (e la tua figura mi sembra non possa farne a meno)devi rassegnarti ad usare un solo bacground o perlomeno dei bacground a luminosità simile (chiari o scuri), oppure modificare la figura in modo che dipenda meno dall'antialias.

Ciao jamesvalue