[Sony Xperia XZ1 Compact ROMs, Kernels, Recoveries,] j4nn:
[MENTION=4120742]munjeni[/MENTION], the busybox for arm, packaged inside magisk, supports fdisk which supports gpt with arbitrary sector size.

The busybox is self-extracting from 'update-binary' present in a Magisk.zip file (for example of Magisk-v19.4.zip you can get the busybox using "dd if=update-binary bs=1024 skip=1619 of=busybox" command).

If I run the busybox's fdisk with qemu on PC with the lun0.000 extracted from the partition .sin file using your 'anyxperia_dumper', I get correct partitions list without any errors reported:

$ QEMU_LD_PREFIX="/mnt/data/xz1c-ore-16.20" ./busybox fdisk -b 4096 -l partition-image-LUN0_X-FLASH-ALL-C93B.000
Found valid GPT with protective MBR; using GPT

Disk partition-image-LUN0_X-FLASH-ALL-C93B.000: 6 sectors, 24576
Logical sector size: 4096
Disk identifier (GUID): 98101b32-bbe2-4bf2-a06e-2bb33d000c20
Partition table holds up to 66 entries
First usable sector is 6, last usable sector is 7810042

Number Start (sector) End (sector) Size Name
1 6 517 2048K TA
2 518 4613 16.0M LTALabel
3 4614 4741 512K rpm
4 4742 4869 512K rpmbak
5 4870 5381 2048K tz
6 5382 5893 2048K tzbak
7 5894 6021 512K hyp
8 6022 6149 512K hypbak
9 6150 6277 512K pmic
10 6278 6405 512K pmicbak
11 6406 6789 1536K abl
12 6790 7173 1536K ablbak
13 7174 7174 4096 devinfo
14 7175 7302 512K keymaster
15 7303 7430 512K keymasterbak
16 7431 7558 512K cmnlib
17 7559 7686 512K cmnlibbak
18 7687 7814 512K cmnlib64
19 7815 7942 512K cmnlib64bak
20 7943 8454 2048K sti
21 8455 8486 128K devcfg
22 8487 8518 128K devcfgbak
23 8519 8550 128K storsec
24 8551 8582 128K storsecbak
25 8583 16262 30.0M xfl
26 16263 23942 30.0M xflbak
27 23943 24070 512K tzxflattest
28 24071 24198 512K tzxflattestbak
29 24199 24326 512K tzxfl
30 24327 24454 512K tzxflbak
31 24455 24486 128K xflkeystore
32 24487 24518 128K xflkeystorebak
33 24519 32710 32.0M persist
34 32711 33094 1536K fsg
35 33095 33098 16384 sec
36 33099 61258 110M modem
37 61259 65354 16.0M dsp
38 65355 81738 64.0M boot
39 81739 81994 1024K bluetooth
40 81995 82058 256K apdp
41 82059 82122 256K msadp
42 82123 82123 4096 dpo
43 82124 90479 32.6M splash
44 90480 90480 4096 limits
45 90481 90736 1024K toolsfv
46 90737 92784 8192K logfs
47 92785 109168 64.0M FOTAKernel
48 109169 109424 1024K ddr
49 109425 109936 2048K modemst1
50 109937 110448 2048K modemst2
51 110449 110449 4096 fsc
52 110450 110451 8192 ssd
53 110452 207731 380M cache
54 207732 207987 1024K misc
55 207988 208115 512K keystore
56 208116 208243 512K frp
57 208244 208259 65536 vbmeta
58 208260 212355 16.0M appslog
59 212356 220547 32.0M diag
60 220548 226691 24.0M Qnovo
61 226692 226948 1028K fsmetadata
62 226949 235140 32.0M rdimage
63 235141 337540 400M oem
64 337541 730756 1536M vendor
65 730757 2010756 5000M system
66 2010757 7810042 22.1G userdata

You need to dd the extracted gpt image also to the end of the disk at -33 sectors since the end of the disk as described here:

https://en.wikipedia.org/wiki/GUID_Partition_Table

Having the virtual disk prepared like this (with somehow set sector size to 4096) you could restore each partition from respecive extracted .sin file to replicate the UFS flash from the phone.