Hallo,
da ich den IC nicht habe, kann ich nur an Hand vom Datenblatt helfen.
combie scheint den IC vor sich liegen zu haben.
Im Grunde hast du es ja schon verstanden, vielleicht nur noch nicht verinnerlicht und umgesetzt.
Also, wenn du Single-Ended misst, dann kann der IC nur im positiven Bereich messen - Masse bezogen.
Demzufolge sind nur 15 Bit Ausgabe möglich - die positive "Hälfte". Das Maximum 0x7FFF sind jedoch 32.767 und nicht 32.768. Das steht in 9.5.4 unter "Note".
Jetzt musst du dem IC nur noch sagen das er Single-Ended messen soll. Sonst hängt der 2. Diff-Eingang vermutlich in der Luft und wird vermutlich zu Fehlmessungen führen. Dazu schaust du dir das Config Register Field MUX in 9.6.3 an. Oder nutzt die Lib dazu.
Wenn du unbedingt den 16Bit Messbereich haben möchtest, sollte nichts dagegen sprechen Differential zu messen. Nur das du den 2. Bezugseingang auf Masse klemmst. Aber, dass ändert nichts an deinem Messwert den du bekommst. Denn du misst dann auch nur Massebezogen im positiven Bereich. Tipp. Verwechsel nicht Messbereich mit Messauflösung.
Wegen deinen 16er Sprüngen. In welcher Auflösung gibt denn dein "20mA Sensor" seinen Strom raus? Solltest man in die Überlegung einbeziehen. Oder arbeitet dieser rein analog?
Edit:
Vielleicht solltest du auch erstmal mit einem Festspannungsteiler messen/testen um andere Fehler auszuschließen, wie zum Bsp. deinen Sensor.