md5sum checks are still running (will be at least 5-6 more hours), but early indicators show the same problem, checksumming directly from the snapshot.
I found a complete text file example.
Contents of the text file on original dataset snapshot (`cat -nv`):
Code:
     1
     2  file 'MVI_0769.MOV'
     3  file 'MVI_0771.MOV'
     4  file 'MVI_0772.MOV'
     5  file 'MVI_0773.MOV'
     6  file 'MVI_0774.MOV'
     7  file 'MVI_0775.MOV'
     8  file 'MVI_0776.MOV'
     9  file 'MVI_0777.MOV'
    10  file 'MVI_0778.MOV'
    11  file 'MVI_0780.MOV'
    12  file 'MVI_0781.MOV'
    13  file 'MVI_0782.MOV'
    14  file 'MVI_0783.MOV'
    15  file 'MVI_0784.MOV'
    16  file 'MVI_0785.MOV'
    17  file 'MVI_0786.MOV'
    18  file 'MVI_0788.MOV'
    19  file 'MVI_0790.MOV'
    20  file 'MVI_0791.MOV'
    21  file 'MVI_0792.MOV'
    22  file 'MVI_0793.MOV'
    23  file 'MVI_0794.MOV'
    24  file 'MVI_0796.MOV'
    25  file 'MVI_0797.MOV'
    26  file 'MVI_0816.MOV'
    27  file 'MVI_0817.MOV'
    28  file 'MVI_0820.MOV'
    29  file 'MVI_0821.MOV'
    30  file 'MVI_0825.MOV'
    31  file 'MVI_0827.MOV'
    32  file 'MVI_0828.MOV'
    33  file 'MVI_0829.MOV'
    34  file 'MVI_0833.MOV'
    35  file 'MVI_0834.MOV'
    36  file 'MVI_0835.MOV'
    37  file 'MVI_0836.MOV'
    38  file 'MVI_0837.MOV'
    39  file 'MVI_0838.MOV'
    40  file 'MVI_0839.MOV'
    41  file 'MVI_0846.MOV'
    42  file 'MVI_0847.MOV'
    43  file 'MVI_0848.MOV'
    44  file 'MVI_0862.MOV'
    45  file 'MVI_0863.MOV'
    46  file 'MVI_0864.MOV'
    47  file 'MVI_0890.MOV'
    48  file 'MVI_0897.MOV'
    49  file 'MVI_0898.MOV'
    50  file 'MVI_0899.MOV'
    51  file 'MVI_0900.MOV'
    52  file 'MVI_0901.MOV'
    53  file 'MVI_0902.MOV'
    54  file 'MVI_0903.MOV'
    55  file 'MVI_0904.MOV'
    56  file 'MVI_0907.MOV'
    57  file 'MVI_0908.MOV'
    58  file 'MVI_0909.MOV'
    59  file 'MVI_0910.MOV'
    60  file 'MVI_0911.MOV'
    61  file 'MVI_0912.MOV'
    62  file 'MVI_0913.MOV'
    63  file 'MVI_0914.MOV'
    64  file 'MVI_0917.MOV'
    65  file 'MVI_0919.MOV'
    66  file 'MVI_0931.MOV'
    67  file 'MVI_0932.MOV'
    68  file 'MVI_0933.MOV'
    69  file 'MVI_0934.MOV'
    70  file 'MVI_0935.MOV'
    71  file 'MVI_0936.MOV' 
Contents of the text file on intermediate (still unencrypted) dataset snapshot (md5 check success):
Code:
     1
     2  file 'MVI_0769.MOV'
     3  file 'MVI_0771.MOV'
     4  file 'MVI_0772.MOV'
     5  file 'MVI_0773.MOV'
     6  file 'MVI_0774.MOV'
     7  file 'MVI_0775.MOV'
     8  file 'MVI_0776.MOV'
     9  file 'MVI_0777.MOV'
    10  file 'MVI_0778.MOV'
    11  file 'MVI_0780.MOV'
    12  file 'MVI_0781.MOV'
    13  file 'MVI_0782.MOV'
    14  file 'MVI_0783.MOV'
    15  file 'MVI_0784.MOV'
    16  file 'MVI_0785.MOV'
    17  file 'MVI_0786.MOV'
    18  file 'MVI_0788.MOV'
    19  file 'MVI_0790.MOV'
    20  file 'MVI_0791.MOV'
    21  file 'MVI_0792.MOV'
    22  file 'MVI_0793.MOV'
    23  file 'MVI_0794.MOV'
    24  file 'MVI_0796.MOV'
    25  file 'MVI_0797.MOV'
    26  file 'MVI_0816.MOV'
    27  file 'MVI_0817.MOV'
    28  file 'MVI_0820.MOV'
    29  file 'MVI_0821.MOV'
    30  file 'MVI_0825.MOV'
    31  file 'MVI_0827.MOV'
    32  file 'MVI_0828.MOV'
    33  file 'MVI_0829.MOV'
    34  file 'MVI_0833.MOV'
    35  file 'MVI_0834.MOV'
    36  file 'MVI_0835.MOV'
    37  file 'MVI_0836.MOV'
    38  file 'MVI_0837.MOV'
    39  file 'MVI_0838.MOV'
    40  file 'MVI_0839.MOV'
    41  file 'MVI_0846.MOV'
    42  file 'MVI_0847.MOV'
    43  file 'MVI_0848.MOV'
    44  file 'MVI_0862.MOV'
    45  file 'MVI_0863.MOV'
    46  file 'MVI_0864.MOV'
    47  file 'MVI_0890.MOV'
    48  file 'MVI_0897.MOV'
    49  file 'MVI_0898.MOV'
    50  file 'MVI_0899.MOV'
    51  file 'MVI_0900.MOV'
    52  file 'MVI_0901.MOV'
    53  file 'MVI_0902.MOV'
    54  file 'MVI_0903.MOV'
    55  file 'MVI_0904.MOV'
    56  file 'MVI_0907.MOV'
    57  file 'MVI_0908.MOV'
    58  file 'MVI_0909.MOV'
    59  file 'MVI_0910.MOV'
    60  file 'MVI_0911.MOV'
    61  file 'MVI_0912.MOV'
    62  file 'MVI_0913.MOV'
    63  file 'MVI_0914.MOV'
    64  file 'MVI_0917.MOV'
    65  file 'MVI_0919.MOV'
    66  file 'MVI_0931.MOV'
    67  file 'MVI_0932.MOV'
    68  file 'MVI_0933.MOV'
    69  file 'MVI_0934.MOV'
    70  file 'MVI_0935.MOV'
    71  file 'MVI_0936.MOV' 
Contents of the text file on destination (encrypted) dataset snapshot (md5 check fail):
Code:
     1  ^@^@^AxM-y^E
     2  file 'MVI_0769.MOV'^T^@/71^T^@^@^_2^T^@^@^_3^T^@^@^_4^T^@^@^_5^T^@^@^_6^T^@^@^_7^T^@^@^^8^T^@/80^T^@^@^OM-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M-^L^@^@^^9@^A.81(^@/81(^@^@^^2M-4^@.82M-4^@.82^X^A/82P^@^A^N^X^A.82l^B.83M-p^@.83M-p^@/83x^@^@^_3M-\^@^@^_3M-^L^@^@^_3M-^L^@^@^_3M-^L^@^@^_4P^@^@^_4P^@^@^_4P^@^@^^6M-L^A/86M-\^@^@^_6M-\^@^@^O0^B^@^_8M-L^A^A^_9x^@^@^^9M-H^@.90M-L^A.90M-L^A.90M-4^@.90M-4^@.90M-4^@.90^X^A.90M- ^@/90M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^OM-d^B^@/91M-^L^@^@^_3x^@^@^_3x^@^@^OM-(^B^@^_9M-(^B^@^_9M-(^B^@^T9M-(^B^_^@^A^@nP^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ 
Well, this is a bummer. Here are the dataset properties.
Original dataset:
Code:
$ sudo zfs get all vol1/jacob.mcdonald@migration
NAME                           PROPERTY                VALUE                   SOURCE
vol1/jacob.mcdonald@migration  type                    snapshot                -
vol1/jacob.mcdonald@migration  creation                Mon Jan 31 16:13 2022   -
vol1/jacob.mcdonald@migration  used                    141K                    -
vol1/jacob.mcdonald@migration  referenced              1.92T                   -
vol1/jacob.mcdonald@migration  compressratio           1.01x                   -
vol1/jacob.mcdonald@migration  devices                 on                      default
vol1/jacob.mcdonald@migration  exec                    on                      inherited from vol1/jacob.mcdonald
vol1/jacob.mcdonald@migration  setuid                  on                      default
vol1/jacob.mcdonald@migration  createtxg               48421091                -
vol1/jacob.mcdonald@migration  xattr                   on                      default
vol1/jacob.mcdonald@migration  version                 5                       -
vol1/jacob.mcdonald@migration  utf8only                off                     -
vol1/jacob.mcdonald@migration  normalization           none                    -
vol1/jacob.mcdonald@migration  casesensitivity         sensitive               -
vol1/jacob.mcdonald@migration  nbmand                  off                     default
vol1/jacob.mcdonald@migration  guid                    16919260077066763466    -
vol1/jacob.mcdonald@migration  primarycache            all                     default
vol1/jacob.mcdonald@migration  secondarycache          all                     default
vol1/jacob.mcdonald@migration  defer_destroy           off                     -
vol1/jacob.mcdonald@migration  userrefs                0                       -
vol1/jacob.mcdonald@migration  objsetid                87817                   -
vol1/jacob.mcdonald@migration  mlslabel                none                    default
vol1/jacob.mcdonald@migration  refcompressratio        1.01x                   -
vol1/jacob.mcdonald@migration  written                 17.1M                   -
vol1/jacob.mcdonald@migration  logicalreferenced       1.94T                   -
vol1/jacob.mcdonald@migration  acltype                 nfsv4                   inherited from vol1/jacob.mcdonald
vol1/jacob.mcdonald@migration  context                 none                    default
vol1/jacob.mcdonald@migration  fscontext               none                    default
vol1/jacob.mcdonald@migration  defcontext              none                    default
vol1/jacob.mcdonald@migration  rootcontext             none                    default
vol1/jacob.mcdonald@migration  encryption              off                     default
vol1/jacob.mcdonald@migration  xattr_compat            linux                   default
vol1/jacob.mcdonald@migration  org.freebsd.ioc:active  yes                     inherited from vol1
 
Intermediate dataset:
Code:
$ sudo zfs get all big_scratch/migration/jacob.mcdonald@migration
NAME                                            PROPERTY               VALUE                  SOURCE
big_scratch/migration/jacob.mcdonald@migration  type                   snapshot               -
big_scratch/migration/jacob.mcdonald@migration  creation               Mon Jan 31 16:13 2022  -
big_scratch/migration/jacob.mcdonald@migration  used                   236K                   -
big_scratch/migration/jacob.mcdonald@migration  referenced             1.91T                  -
big_scratch/migration/jacob.mcdonald@migration  compressratio          1.02x                  -
big_scratch/migration/jacob.mcdonald@migration  devices                on                     default
big_scratch/migration/jacob.mcdonald@migration  exec                   on                     inherited from big_scratch/migration/jacob.mcdonald
big_scratch/migration/jacob.mcdonald@migration  setuid                 on                     default
big_scratch/migration/jacob.mcdonald@migration  createtxg              184273                 -
big_scratch/migration/jacob.mcdonald@migration  xattr                  sa                     inherited from big_scratch/migration
big_scratch/migration/jacob.mcdonald@migration  version                5                      -
big_scratch/migration/jacob.mcdonald@migration  utf8only               off                    -
big_scratch/migration/jacob.mcdonald@migration  normalization          none                   -
big_scratch/migration/jacob.mcdonald@migration  casesensitivity        sensitive              -
big_scratch/migration/jacob.mcdonald@migration  nbmand                 off                    default
big_scratch/migration/jacob.mcdonald@migration  guid                   16919260077066763466   -
big_scratch/migration/jacob.mcdonald@migration  primarycache           all                    default
big_scratch/migration/jacob.mcdonald@migration  secondarycache         all                    default
big_scratch/migration/jacob.mcdonald@migration  defer_destroy          off                    -
big_scratch/migration/jacob.mcdonald@migration  userrefs               0                      -
big_scratch/migration/jacob.mcdonald@migration  objsetid               37487                  -
big_scratch/migration/jacob.mcdonald@migration  mlslabel               none                   default
big_scratch/migration/jacob.mcdonald@migration  refcompressratio       1.02x                  -
big_scratch/migration/jacob.mcdonald@migration  written                1.91T                  -
big_scratch/migration/jacob.mcdonald@migration  logicalreferenced      1.94T                  -
big_scratch/migration/jacob.mcdonald@migration  acltype                nfsv4                  inherited from big_scratch/migration/jacob.mcdonald
big_scratch/migration/jacob.mcdonald@migration  context                none                   default
big_scratch/migration/jacob.mcdonald@migration  fscontext              none                   default
big_scratch/migration/jacob.mcdonald@migration  defcontext             none                   default
big_scratch/migration/jacob.mcdonald@migration  rootcontext            none                   default
big_scratch/migration/jacob.mcdonald@migration  encryption             off                    default
big_scratch/migration/jacob.mcdonald@migration  xattr_compat           linux                  default
big_scratch/migration/jacob.mcdonald@migration  org.truenas:managedby  172.16.42.46           inherited from big_scratch/migration
 
Destination dataset:
Code:
$ sudo zfs get all vol1/jacob.mcdonald_migrated@migration
NAME                                    PROPERTY                VALUE                         SOURCE
vol1/jacob.mcdonald_migrated@migration  type                    snapshot                      -
vol1/jacob.mcdonald_migrated@migration  creation                Mon Jan 31 16:13 2022         -
vol1/jacob.mcdonald_migrated@migration  used                    0B                            -
vol1/jacob.mcdonald_migrated@migration  referenced              1.91T                         -
vol1/jacob.mcdonald_migrated@migration  compressratio           1.02x                         -
vol1/jacob.mcdonald_migrated@migration  devices                 on                            default
vol1/jacob.mcdonald_migrated@migration  exec                    on                            inherited from vol1/jacob.mcdonald_migrated
vol1/jacob.mcdonald_migrated@migration  setuid                  on                            default
vol1/jacob.mcdonald_migrated@migration  createtxg               48427504                      -
vol1/jacob.mcdonald_migrated@migration  xattr                   on                            default
vol1/jacob.mcdonald_migrated@migration  version                 5                             -
vol1/jacob.mcdonald_migrated@migration  utf8only                off                           -
vol1/jacob.mcdonald_migrated@migration  normalization           none                          -
vol1/jacob.mcdonald_migrated@migration  casesensitivity         sensitive                     -
vol1/jacob.mcdonald_migrated@migration  nbmand                  off                           default
vol1/jacob.mcdonald_migrated@migration  guid                    16919260077066763466          -
vol1/jacob.mcdonald_migrated@migration  primarycache            all                           default
vol1/jacob.mcdonald_migrated@migration  secondarycache          all                           default
vol1/jacob.mcdonald_migrated@migration  defer_destroy           off                           -
vol1/jacob.mcdonald_migrated@migration  userrefs                0                             -
vol1/jacob.mcdonald_migrated@migration  objsetid                93995                         -
vol1/jacob.mcdonald_migrated@migration  mlslabel                none                          default
vol1/jacob.mcdonald_migrated@migration  refcompressratio        1.02x                         -
vol1/jacob.mcdonald_migrated@migration  written                 1.91T                         -
vol1/jacob.mcdonald_migrated@migration  logicalreferenced       1.94T                         -
vol1/jacob.mcdonald_migrated@migration  acltype                 nfsv4                         inherited from vol1/jacob.mcdonald_migrated
vol1/jacob.mcdonald_migrated@migration  context                 none                          default
vol1/jacob.mcdonald_migrated@migration  fscontext               none                          default
vol1/jacob.mcdonald_migrated@migration  defcontext              none                          default
vol1/jacob.mcdonald_migrated@migration  rootcontext             none                          default
vol1/jacob.mcdonald_migrated@migration  encryption              aes-256-gcm                   -
vol1/jacob.mcdonald_migrated@migration  encryptionroot          vol1/jacob.mcdonald_migrated  -
vol1/jacob.mcdonald_migrated@migration  keystatus               available                     -
vol1/jacob.mcdonald_migrated@migration  xattr_compat            linux                         default
vol1/jacob.mcdonald_migrated@migration  org.freebsd.ioc:active  yes                           inherited from vol1
 
I guess I'll delete the destination dataset and try again, perhaps using lz4 instead of zstd in the destination? But I'm using zstd in the intermediate dataset, and the original dataset is a mix of lz4 and zstd. Perhaps it's a bad interaction between encryption and zstd? I'm grasping at straws here.
If that still fails, I can try again using no encryption on the destination dataset, but that really negates the whole point of this exercise.
Update: I deleted the destination (encrypted) dataset. I'm starting replication again. This time I changed the parent dataset from zstd to lz4, and disabled `Full Filesystem Replication`. The `Include Dataset Properties` is still enabled. Running now... it will be several hours.