My guess is that Apple keeps a table somewhere of all registered devices on a network. When the Airplay device loses its connection, for whatever reason, it is not purged from this table fast enough, and there is a conflict when it reconnects with the same name.
Since the Airplay service is an interesting dual server and client service on all the devices without a centralized server (each device acts as a server at first waiting for connections from a client, then when a connection is established they switch roles and the device becomes a client and the earlier client becomes a server), I am not sure how Apple keeps this table up to date on all the devices.
However they do it, it's obviously not purging prior instances of a connection quick enough and causing the conflicts you are seeing. Most likely each device keeps its own table, but once there is a single conflict on any device causing the renaming, the renaming is propagated to all other devices.
Again, this is just a guess based on my prior experiments (years ago) trying to reverse-engineer Airplay.