It appears that 'CopyToSprite' actually copies from the sprite. What's probably happening is the two functions 'CopyToSprite' and 'CopyFromSprite' both have the name 'CopyToSprite' in python. So the last one defined is the only one accessible. Easily fixable if the source were available.
Also ImageManipulator.CopyToSprite(spritename) is incorrect.
With functions (or methods) in construct, only two types work in python: numbers or strings. So the correct way would be: ImageManipulator.CopyToSprite('spritename'). If you use a number instead of a string, the objecttype with an OID (object id) equal to that number would be referenced. If the referenced objecttype has no image data it will cause a crash.