I'm hesitant to make this suggestion as my experience is so far limited to having been reading this forum for the last six months and having played a mere handful of games (base set only) against bots, but might not a simpler option be to identify the Urchin precisely in the text that asks if one wants to trash it? For example "Trash Urchin that was played by Prince?"
Don't hesitate to make suggestions, if there is something wrong with it, it will be pointed out, in a polite manner from my experience.
To your question: In this special case, probably. But since this is a general problem that affects more cards/combination of cards, I would personally more like a solution to the general problem. If we can then use additional clarifications (as you suggests), I'm all for it.
There are at least 3 different UIs that are used in 'select cards that get treated by an effect':
a) Purely textual in the log: Archive is done well (showing you all the options for all Archives, so you can plan), Urchin has the problem described when you play the 3rd or later, because then you are given 2 options of "may trash an Urchin from play", without knowing which one of the first two Urchins each line corresponds to.
b) Graphical by selection of the in-game representation of the card: Most effects that select cards to be discarded/trashed use this, and I *think* that using stacking is unproblematic for every zone except 'in-play'. For in-play selection cards like Scheme, Herbalist and Bonfire come to mind.
c) During Cleanup, cards like Travelers, Scheme, Treasury can create a long list of 'what to exchange/topdeck' effects, that are handled in a special graphical list. Again it is impossible to understand/influence which card is affected how in corner cases (I wanted to exchange one Traveler for the 'next version' and Scheme another copy of it, for example).
a) Cards affected by Prince and/or Enchantress should always be textually marked as such, Duration cards should have an additional info like "Amulet (this turn)" or "Amulet (last turn)" or "Archive (turn 13)". The first two versions would be use overwhelmingly, the latter is for the longer lasting ones. The same goes for Throne Rooms etc. that stay in play because they played Duration cards.
Alternatively, just use the "(turn XXX)" template for anything that isn't from the current turn.
b) Provide a *permanent* stacking/unstacking button for the in-play zone (next to View Trash/Undo/Resign), which always works and unstacks cards in play according to the time they were played. Then it is the player's responsibility to remember that the first played copy of Duration card X was affected by Enchantress, so he should Scheme that first played copy instead of the second played one.
c) Give the cards where multiple exist in play some number according to timestamp. In my 'Exchange one Traveler, Scheme the other' example above, I would first be prompted to choose the card to be Schemed. I unstack the cards and choose Traveler #1 to Scheme. Later, when the list of cards to exchange/topdeck comes, I would choose "Keep" for Traveler#1 and "Exchange" for Traveler #2.