One constraint worth knowing before you make the gif rather than after. itch rejects an image over 3 MB, and if you upload several at once the oversized one takes the whole batch down with it instead of failing on its own. We burned a few upload attempts before working that out.
What fixed it was doing the reduction in the right order. Cut the frame rate and the pixel width first, then build the palette, rather than trying to squeeze the file at the very end. A two pass ffmpeg run with palettegen and paletteuse holds the colours together at a low frame rate where a single pass goes muddy.
Also open the exported frames at full size before uploading. A capture step that is scaling behind your back resamples everything, and that is far easier to catch in a still than in the finished loop.