冒頭の質問に関してはすでに回答が得られていますが、GRP画面では色指定は32bitで行われるのに実際の表示は16bitで丸められるため表示のRGB値とGSPOITによるRGB値が異なる場面が出てくるというのは知っておく必要があると思います。
詳しくは私のプチコン3号入門講座を読んでください。
http://ochameclub.web.fc2.com/petitcom3/lecture/grp.htm#5ちなみに「16bitに丸められる」というのはR、G、Bが各5bit(32段階)に丸められるということです。(残り1bitは透明色か否かを示す)
あと、グラフィックの回転ですが、N×Nドットのグラフィックの回転は拡大表示を行わなくても最大でN×N×2回のループ処理を行う必要があります。
そのため、速度面ではかなり厳しくなるためどうしてもグラフィックに拘る必要がないならばスプライトで行うのがベターです。(GRP4にGPUTCHR表示を行い、スプライトとして表示する)
単純な回転ではなく2軸回転を行うならばスプライトではできないためGRPを使わざるを得ないです。
2軸回転処理を行えばスーファミのF-ZEROやFFの飛空艇のような表示も可能になります。(上記のスクリーンショットは私の2軸回転プログラムによって実行されたもの)