Da scheint schon irgendwas falsch zu sein:
Die Tabelle sollte eigentlich 256 Werte umfassen, da schließlich Werte von 0-255 vorkommen können.
Das Ganze muss auch noch in einer Schleife für jedes Zeichen passieren.
Zusätzlich basiert das VBA-Beispiel auf ASCII während du in RPG ja wohl EBCDIC hat. Dies führt zu einer ganz anderen Checksumme.

Poste doch mal den vollständigen Code, wenn es geht auch den ursprünglichen VBA-Code.