Thanks to @Nassau for pointing out the correct CHS values using sfdisk -g. I had been using BPB values for calculating CHS, which led me to load the wrong sector.
Correcting the seek= in dd to match C:0 H:4 S:38 (i.e., sector 307) fixed the problem.