領域が選択されているときに[コピー]を選択すればクリップボードに転送します。これによって複数起動した場合、同時並行的に作業が進められるので効率的だと思います。

選択されているかどうかは、Form1クラスのフィールド変数(リスト)SelectionXYsの要素数が0かどうかでわかります。0でなければ選択されています。

まずSelectionXYs内の要素を調べて、XY.XとXY.Yのそれぞれ最大であるものと最小であるものを調べます。これでパネルを選択している矩形の座標とサイズがわかります。それがわかったら矩形内のパネルの色をしらべてビットマップをつくります。

ビットマップが作成されたらこれをクリップボードのなかに格納します。

メニューの[ペースト]が選択されたら、クリップボード内のデータがBitmapであるかどうか調べます。クリップボード内のデータがBitmapであるなら、今度はマウスポインタがどのパネルの上にあるのか調べます。

これでマウスポインタの位置(スクリーン座標)がわかるので、親のパネル(32×32のパネルの親パネル)における座標を調べます。各パネルのサイズは14ピクセルなので、割り算をして整数部分をとりだせば、マウスポインタがどのパネルの上にあるかがわかります。

別の32×32ピクセルのビットマップを作成して、現在の全パネルの色をBitmap.SetPixelメソッドでセットします。次にその32×32ピクセルのビットマップにさきほどクリップボードから得られたビットマップを描画します。描画位置はマウスポインタのある位置、サイズは取得されたサイズでです。

あとは32×32ピクセルのビットマップがどうなっているかGetPixelメソッドで調べて、全パネルに反映させます。