А корутина ведь, когда вызывается, хранит переданные ей параметры до своего окончания без изменения, не запрашивает же их заново после yield return?
Я сейчас вполне могу сказать абсолютную ересь, но моё предположение: существует объект Collision2D, на который передаётся ссылка. И за время работы метода содержимое объекта, на который была передана ссылка, изменилось из-за возникновения новой коллизии.