christina
Glad it helped the performance.
Changing the position and size of the canvas wouldn't affect the performance. What would affect it, I imagine, is the "resize canvas" action, which changes the texture size. If you can i'd leave the texture size be, and just change the object size. The only issue is the positions would be off when you zoom in and out because the line draw commands are relative to the texture, not the object. This doesn't apply for the "paste" action though, it will paste in place regardless.
Typically when the texture size is the same as the object size you can do this to map layout positions to the canvas:
sprite.x-canvas.left
sprite.y-canvas.top
When the sizes are different you can do this instead:
(sprite.x-canvas.left)*textureWidth/canvas.width
(sprite.y-canvas.top)*textureHeight/canvas.height
I didn't seem to include a way to read the texture width and height so you'll want to save them to variables. Just note when the canvas object is created the texture size will be the same as the object size. Then you if you ever use the "resize canvas" action you'll want to update those variables with the new size.