ZFS delete snapshots with interdependencies and clones

AFAIK you're going to have to copy those datasets out to new, independent datasets. Promotion just switches around which dataset is "parent" vs "child", it doesn't actually break any dependencies if you want to keep both.

Eg:

root@box~# zfs snapshot tank/containers/six@1 
root@box~# zfs send tank/containers/six@1 | pv | zfs receive tank/containers/newsix  
root@box~# zfs destroy -R tank/containers/six  
root@box~# zfs destroy tank/containers/three@F 
root@box~# zfs rename tank/containers/newsix tank/containers/six

Take your time and be sure of what you're doing. Especially with the actual deletions.

This replication is block-for-block, so if there's any significant data in there it WILL take a while. The pv part is strictly optional, but will give you a progress bar to look at while you wait.

Also maybe consider syncoid to automate the replication tasks, now and in the future. (Obligatory: I am the original author of this tool, which is GPLv3 licensed and free to use.)