Le problème : new Link() avec toProperty est conçu pour les opérations de lecture (GET/GetCollection).
Quand tu l'utilises sur un POST, API Platform essaie de récupérer une ressource existante. Dès que tu as plus de 2 adresses pour le même worker, il trouve plusieurs résultats au lieu d'un seul d'où l'erreur.
La solution : Pour les opérations POST, simplifie ta configuration :
#[Post(
    uriTemplate: '/workers/{workerId}/addresses',
    input: AddressInputDto::class,
    processor: AddressStateProcessor::class
)]
Puis dans ton AddressStateProcessor, récupère l'ID du worker depuis le contexte :
$workerId = $context['uri_variables']['workerId'];
Récupère l'entité Worker et associe-la à la nouvelle Address
Pourquoi ? new Link() est prévu pour la récupération de sous-ressources, pas pour leur création. Pour les POST, gère la relation parent-enfant dans ton state processor.