You would leave out the “-k kernel-dtb” when flashing the rootfs. You would add the “-k kernel-dtb” when flashing just that device tree.
The flash.sh option naming is a bit misleading. The “-r” says to “reuse” the “bootloader/system.img”, but what this really does is to “not regenerate bootloader/system.img” (if a system.img is still there this file will remain untouched…if no file is there, then none will be created). Whether or not the rootfs is flashed is not influenced by this option. The “-k kernel-dtb” is for flashing one device tree, but if you left off “-r” it would generate a new system.img even though it wouldn’t flash it (the “-k” says this is all you will flash). Device tree and rootfs flashes are separate, just make sure you have the device tree in place when you run “sudo ./flash.sh -r jetson-tx2 mmcblk0p1” and this will flash your device tree and the clone.
It is correct that having the wrong base release combined with some component of another release is often the cause for boot failure. There are some pieces you might be able to get away with keeping, but in terms of a full flash with mixed versions the failure rate will be very high.
Should you put your device tree in place in the flash software, and put your clone in place, then use only the “-r” option, you will do a complete flash with your clone as the rootfs.