The issue you're facing goes in line with this topic
And also, you shouldn't need to create variables programmatically, you can just add to a list. If you have a reason to use the create var block, then I'd like to hear why.
To get your script to work, just do this
tell (object [myself]) to (item (3) of (var(ownpart)))
(Sorry, I didn't want to create the script in snap).
And if you're thinking, why would I have to do this? I agree. A sprite should not need to tell itself to run a script from a variable.