Ist zwar nicht meine Sprache, hoffe aber die Regeln gelten hier auch:

zu 1.
Die Schleife wird schon durchlaufen, du deklarierst aber die Variable innerhalb des IF/ELSE Blockes und deshalb ist Sie auch nur dort sichtbar.
Besser:
Code:
String DisplFeld3;  // Deklaration der Variable außerhalb des if-else-Blocks  
if (Ishunt < 1.0) {  // wenn Wert < 1,0A ist, [mA]-Anzeige     
   DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA";
...
Dadurch ist DisplFeld3 auch außerhalb des Blocks verfügbar und die Fehlermeldung sollte verschwinden.


zu 2.
Du erzeugst innerhalb des IF/ELSE Blockes eine neue lokale Variable, welche nur dort lokal verfügbar ist, Du greifst nicht auf die zuerst Deklarierte zu.
Lasse bitte die Typendeklaration "STRING" weg
(rot markiert weglassen)
Code:
String DisplFeld3 = "3 test";  // TESTzeile  
if (Ishunt < 1.0) {     
    String DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA";  // Kein "String" davor
...

Gruß André