USB+external power source - works fine. No USB - everything goes crazy.

If things go crazy when you disconnect the USB, it's a good sign that you are drawing too much current. With USB plugged in, the Arduino is drawing directly from your PC, not its own voltage regulator. It doesn't matter how much your current your power supply can produce since it is upstream of the voltage regulator and the regulator is what limits the current on +5V.

If you truly have a 5.8V power supply, you can run it through the diode so it is 5.1V and tie that directly to +5V, not V-in.

Good luck