I looked at your code and I see that you are cloning and combining the image. You don't have to do that. You can run the command directly on the myRasterImage and it will only apply the command to the region. This will save you time. Like this:
RasterImage myRasterImage = RasterImageMediaConverter.ConvertTo(morphImage.Source, RasterImageMediaConverterToFlags.None);
System.Drawing.Rectangle rc = new System.Drawing.Rectangle(myRasterImage.ImageWidth / 10, myRasterImage.ImageHeight / 10, myRasterImage.ImageWidth / 3, myRasterImage.ImageHeight / 3);
myRasterImage.AddRectangleToRegion(null, rc, RasterRegionCombineMode.Set);
//Modify cropped area for easy identification
InvertCommand invCommand = new InvertCommand();
invCommand.Run(myRasterImage);
As for painting while the mouse is moving will seem slow because you will have to convert back and forth between the RasterImage and the BitmapSource. I think what you can do instead is just use the RasterImageViewer from Leadtools.Windows.Controls.Pro.dll. The RasterImageViewer takes a RasterImage object, so you don't have to convert back and forth. If you use the RasterImageViewer then you just need to do this:
System.Drawing.Rectangle rc = new
System.Drawing.Rectangle(myRasterImage.ImageWidth / 10,
myRasterImage.ImageHeight / 10, myRasterImage.ImageWidth / 3,
myRasterImage.ImageHeight / 3);
myRasterImage.AddRectangleToRegion(null, rc, RasterRegionCombineMode.Set);
//Modify cropped area for easy identification
InvertCommand invCommand = new InvertCommand();
invCommand.Run(myRasterImage);