The relay coil flyback diode should be as close as possible to be across the relay coil terminals.
Since you say that the problem does not happen when the load is not connected to the relay then it is likely that the load is what is causing the problem.
If the load is fully isolated from the MCU board and its power supplies then the problem is some type of inductive coupling or injection into your MCU board. Try temporarily wiring the load on longer lead wires so that you can move it around and away from your MCU board. That may help you evaluate the source of the noise problem.
If the load is not fully isolated from the MCU board (such as if they share power supply rails or GND bus connection) then it may be a voltage bounce problem is what is causing the problem. Write a simple version of your program that activates the relay repetitively and then look at the relay load waveform on a scope at the same time as the GND and VCC near your MCU. Look to see if one or the other has a spike or change in its voltage level at the same time the load turns on or off. Current surges in the load can make the voltage rail spike or cause the GND to bounce away from 0V on some parts of the GND wiring. Using this technique can help a lot in evaluating the problem and give you an opportunity to experiment with changes to improve on the design away from the problems.