to avoid the instant dissappear and solve some other problems, couldn't you just do this:
Create 2 different sprite defs/templates.
Make the first boomerang a simple shot created with the scripting wizard (shoots off straight in one directions, and deleted at end of path.) Except "at end of path", or through script on a sprite collision, make a new sprite.
The second sprite can be simple as well. Make it have no solidity,follow the player sprite. And have it removed in a collision with the player sprite.
Each sprite must have its own collision class (shot-boomerrang, and returning boomerrang)
You can also make it pretty easy to have one on the screen at a time, make the function that shoots it require an inventory and remove it, and the final collision with the playersprite add the inventory back. Be sure to get that inventory either at the beginning or when you pick the boomerang up.