This is a problem between NextCloud and the Plugin. Nextcloud uses SabreDAV 3.22 which breaks some DAV responses. This was introduced in 3.21. I have reported there a problem with other DAV Clients, specially the Windows 10 Clients. Then there was a fix for this in 3.22 which seems to fix the most clients, but not the CardDAV Plugin. Since there seems to be no easy fix for this, i have downgraded my personal SabreDAV Installation to the working version 3.20. With this version the CardDAV Plugin works as expected. You can update the individual components of SabreDAV manually to the latest versions of the SabreDAV Github Repository. This worked without any problems for me and the most acute mistakes have been fixed. All clients can easily synchronize.
Since development of SabreDAV ist stopped since April last year, i fear this will never get fixed from SabreDAV side. I didn't understand why NextCloud developers have updated to this buggy SabreDAV Version, but in the last moths most of the decisions by the NextCloud developers was more than stupid.
You don't get answers to uncomfortable questions and if you do, you are put off by one developer to the next and get only insufficient answers without a real solution. Problems are not fixed, but mostly "solved" with the phrase that this is the way the developers have thought of it, even if it is still impractical.
Anyway, this is not the right place to discuss NextCloud problems. If you want get the sync to work, you should downgrade the SabreDAV included in Nextcloud to 3.20 and update afterwards the individual components to the newest versions. This should work also with NextCloud. The only thing that is not fixed is the extremely slow sync process. This is caused by the enormous I/O overhead of NextCloud. That was the main reason for me to switch to pure SabreDAV. For example: SabreDAV itself takes near 5 seconds for 300Kb, NextCloud needs between 45 and 65 seconds on the same server for the same task. I talk about sync times, not the NextCloud GUI.