How to measure the negative voltage on the ADC with only positive voltage reference available?
There are a number of legitimate reasons to make a system positive-ground:


Perhaps the manufacturer wanted to do all of the measuring and switching on the "low side" for lower cost or higher efficiency.
Wiring exposed to moisture (e.g., outdoors on the solar panel) will be subject to less galvanic corrosion if it is negative with respect to ground.


In any case, your controller effectively has 4 nodes:


All of the positive terminals
The negative terminal of the panel
The negative terminal of the battery
The negative terminal of the load


To measure voltage between any two of these nodes &mdash; especially if ground on the MCU is tied to the negative terminal of the load &mdash; you need to set up your ADC to make differential measurements. You measure the positive voltage, then one of the negative terminals (keeping in mind that the panel or the battery might be more negative than the load), and subtract the latter value from the former. You can do this in real time with an opamp-based circuit, or you can measure the values sequentially and do the math in your firmware.