As for rotating, it’s trivial to rotate images 90 degrees, you just swap the x and y coordinates of pixels. Can you rotate by an arbitrary angle and still get a clean image?
Yep. Works here. Once you’re in indexed mode, the colors shouldn’t change just because you’re rotating the canvas (by 90° or any other angle).
The trick may be to stick to rotating the canvas as opposed to creating a layer and rotating the data on that layer — that might require shifting to 8/8/8, because there’s no accommodation for layering in an indexed color space.