CGImageRefに対する操作をしていて回転で困ったらこれを見ましょう。
基本的にiOSはCGImageRefをUIImageでラップしていますが、CGImageレイヤーではorientationの情報を持ちません。そのため、UIImageOrientationUp以外の場合、CGImageレイヤーで操作をすると画像の回転方向がおかしなことになる場合があります。
上記stackoverflowのanswerはUIImageOrientationUp以外のorientationの画像を、CGImageレイヤーからUIImageOrientationUpの方向に修正してくれるコードです。
修正済みのUIImageを使えば、CGImageレイヤーでも正しく動作するはずです。