Палитра находится сразу после BITMAPINFOHEADER?
То есть fseek(filePtr, bitmapFileHeader.bfOffBits, SEEK_SET);
Нет, в этом месте начинается данные о пикселах изображения. Палитра начинается по смещению BITMAPINFOHEADER.biSize + sizeof(BITMAPFILEHEADER).