Проблема, вероятно, вызвана тем фактом, что GIF использует индексы в 256 массивах цветов для определения цвета в каждом пикселе. Маловероятно, что любые два изображения GIF будут иметь одинаковую цветовую палитру.
Поэтому, когда вы открываете изображение A, оно использует его палитру, где пиксель 1,1 указывает на индекс 23, который является синим (например). Теперь при открытии изображения B индекс 23 будет использовать этот цвет, а не цвет из его палитры (например, красного). Таким образом, изображение B будет выглядеть неправильно.
Если вы преобразуете все изображения в формат PNG или другой формат с истинным цветом, у вас не возникнет этой проблемы. Затем вы можете объединить изображения и затем сохранить обратно в GIF при необходимости.