duplicating sprites by editor script

i have set of sprites for character, i need to make different set of graphics with same trimming and pivot positioning, so i am trying to do it by scripot

Sprite asset = AssetDatabase.LoadAssetAtPath(redCutoutsPath + "/" + foundRedCutouts*, typeof(Sprite)) as Sprite;*

asset.rect.Set(blueCutouts[redCutoutsPath.Count].rect.left, blueCutouts[redCutoutsPath.Count].rect.top, blueCutouts[redCutouts.Count].rect.width, blueCutouts[bumpCutouts.Count].rect.height);
asset.rect.center.Set(blueCutouts[redCutoutsPath.Count].rect.center.x, blueCutouts[redCutoutsPath.Count].rect.center.y);
asset.textureRectOffset.Set(0.01f, 0.99f);
but the asset, when i print the rect, is the same before and after, so i guess this does not work at all
is there any way how to edit sprite settings by editor script?

You might have better luck instantiating a prefab or creating your sprite out of a texture instead of loading it directly.
You can generate the proper rect in Sprite.Create