Maybe if I change <code>_receiver_input_locator = (By.CSS_SELECTOR, '#messages-recipients-list span.recipient')</code>
to 
<code>_receiver_input_locator = (By.CSS_SELECTOR, '#messages-recipients-list span:nth-child(1).recipient')</code>
Then the first span will always be taken.