I assume that you know that actions directly after a create/spawn action will pick the newly created object. But I believe the problem here is that you're creating the object by name.
If possible you should use just different frames (for static objects) instead of different sprites. Or if it needs to be animated, use different animations. That would make your life a whole lot easier. But might not be feasible depending on what your sprites need to be able to do.
So in case you absolutely need to have different sprites, always remember what Ashley said back in 2009:
[quote:2wzky99w]The way it is, though, is that when you create an object, it doesn't really exist until the end of the next top level event or trigger. (A top level event is anything which is not a subevent of anything else - I can't remember if events in groups of events count)
Always keep that in mind when you're trying to manipulate newly created objects.
So in this case, if you have an object created by name and want to assign a certain PV to it, you could do it similar to this:
I'm making use of a family and a set the PV to be changed to a negative initial value to indicate that it hasn't been changed yet.
What's also important is that you shouldn't use Button objects for creation events, since they're messing with the newly created object in a way that changes applied to it will appear one tick too late. That's the best I can explain it right now, there's a comment in the cap which should make it clearer.
Also let me mention that there is a Python-method to safely pick newly created objects. But I'm not much of a Python-user and can't recall it right now. A forum search should come up with it or somebody else will be so kind to repost it here.