Zu deinem ersten Problem mit dem hinzufügen/ersetzen sollte der Merge Mode helfen. Bedenke allerdings das nur die Image Verknüpfungen aktualisiert werden aber die „alten“ ersetzten Bilder noch im Media Manager/Server bleiben. Ist leider so in Shopware und müllt dir mit dir Zeit deinen Server zu. Dazu gibt es den Media Cleanup Cronjob und man kann bei jedem Album einstellen ob das Album vom Cleanup betroffen sein soll. So könnte man es lösen wobei ich das selber noch nicht produktiv im Einsatz habe. Lösche als Übergangslösung alle paar Wochen mal sehr alte Artikelbilder via Media Manager.
Zu der Beschreibung seh ich jetzt auf den ersten Blick keinen Fehler. Versuch dich vielleicht mal an diesem Beispiel zu orientieren und vergleiche mal deinen JSON Payload mit diesem.
Die API merge Mode funktioniert nur bei dem PUT von /api/articles/XXX
Ich habe es mit dem PUT von /api/variants/XXX getestet und es funktioniert nicht, ist daher keine Lösung.
Meine Idee war die Bildlinks in der Image Description zu speichern vor dem Update abzufragen. Leider werden bei dem anlegen von Varianten sowie beim updaten die zwar die Bilder gespeichertt aber die Bilddescription nicht.