Circuit/schematic review ATMEGA328P
I'll add it as an answer, since the comments are getting big...


You should not supply 12V to the ATMega328. 3V3 would be a better choice here so you don't have to use level-shifting on the I2C lines. 
You are pulling up the reset to 12V, change this to 3V3 as well.
You have 2 different grounds defined. This can cause problems and you should probably decide to name them the same or connect them with a 0R resistor.
No reverse voltage protection on the voltage inputs
VDDA (analog reference voltage) should be filtered, you can use a ferrite bead for this
The LED's are using 10K resistors, which may be too high for the 3V3 voltage, they will probably be so dim you can't see them.
The Inhibit pin on the LDO should be connected directly to 5V.
The input capacitor on the LDO should be between 5V and ground, not Inhibit.
10K pull-ups for the I2C lines are probably too big. You should be using something in the 2.2K-4.7K range. 
If you run the ATMega and the current monitor chips on 3V3 instead of 5V, you can eliminate the I2C level-shifting. 
The HMC5883L should have a 4.7uF polarized capacitor on the C1 line. 
VDD on the HMC5883L should have a capacitor placed close to the power pins.


Also, check the availability of some of your parts. The CSTCE16M0V53 looks to be obsolete/End-of-life.