The Arduino builder creates for AVR boards not only hex file for the sketch, but it creates a combined hex with bootloader and sketch too. It is for example for Blink.hex a Blink_with_bootloader.hex. If you use in IDE the "Export compiled binary" command in Tools menu, the builder puts the hex files next to ino file in your sketch folder.
If you want the ...
It seems that you are using too high programming speed. SCK period al of 0.1 us renders 10 MHz, which is to fast if crystal is working at 8 MHz. Not sure where to change it in Arduino environment, but you should add this key to avrdude.exe run string:
avrdude.exe -B 8
This will set programming speed to 125 kHz. Also I suggest you to buy a cheap USBasp ...
Use the SWD interface and a programmer to burn the bootloader to SAMD.
source of the picture https://email@example.com/arduino-in-circuit-debugging-with-platformio-9f699da57ddc
I had luck with Adafruit DAP library using an Arduino M0 to burn a bootloader to MKR Zero.