I can see in the data that pitch and roll only diverged after the RCOUT.C6 Motor1 lost thrust (possibly desync) and it looks like RCOUT.C1 Motor5 was also starting to suffer the same fate.
If it was desync it wont show as a physical issue like loose or broken prop.
Check what MOT_PWM_MIN and MOT_PWM_MAX should be for those ESCs, set it and then do the SemiAutomatic ESC calibration.
https://ardupilot.org/copter/docs/esc-calibration.html#semi-automatic-esc-by-esc-calibration
It might be that you need to add more capacitance right at the ESC power input, as close to the ESC circuit board as possible or on the ESC circuit board. More is better!
It wont hurt to add a couple of capacitors to your power distribution too, if you think they might be needed.
Use only Low ESR caps.
Also see this about long wiring runs, you might need to so some additional work with the power wires (twisting them) and the signal wires too.
I see you’ve got motors plugged into non-standard servo outputs - which is fine and that’s a good way to keep wiring tidy. Use the MissionPlanner motor test and do “All in sequence” to observe each motor is activated in turn from front/right all the way around the circumference to front/left - in the A/B/C/D/E/F order ignoring the servo main-out connector numbering.
Also observe the correct spin of each motor.
Just so you are aware, the GPS positions and IMU positions all differ a lot
Best to set FENCE_ENABLE,1 and wait for Home to be set, then you can arm. You did the correct thing by staying in Stabilise and AltHold for testing. If you tried Loiter it might have been denied (and some people miss the “denied” message and assume they are in Loiter) or Loiter would have tried to follow the wandering GPS position.
Also set INS_LOG_BAT_MASK,7
Once you get to a successful takeoff and can hover and test pitch and roll, send that .bin log.