A quick script to convert:
 Code:
For Each $ERROR in Split("1 3 32 44 1073807364 -1073740972 -1073741502 -1073741515 -1073741521 -1073741701 -1073741818 -1073741819 -2147483645")
   $=fnComErr($ERROR)
   ""+$ERROR+" -> ["+@ERROR+"] "+@SERROR+@CRLF
Next

Function fnCOMErr($lErr)
    If $lErr<0 $lErr=VAL("&"+Right(DecToHex($lErr),4)) EndIf
    Exit $lErr
Endfunction


Results are:
 Quote:
1 -> [1] Incorrect function.
3 -> [3] The system cannot find the path specified.
32 -> [32] The process cannot access the file because it is being used by another process.
44 -> [44] Error (317 / 13D) while retrieving error information for 2C
1073807364 -> [1073807364] Error (317 / 13D) while retrieving error information for 40010004
-1073740972 -> [852] Error (317 / 13D) while retrieving error information for 354
-1073741502 -> [322] Error (317 / 13D) while retrieving error information for 142
-1073741515 -> [309] Error (317 / 13D) while retrieving error information for 135
-1073741521 -> [303] The file cannot be opened because it is in the process of being deleted.
-1073741701 -> [123] The filename, directory name, or volume label syntax is incorrect.
-1073741818 -> [6] The handle is invalid.
-1073741819 -> [5] Access is denied.
-2147483645 -> [3] The system cannot find the path specified.


Note, this only works properly for Windows / MS error codes. The COBOL application and runtime may issue their own bespoke codes which won't translate into any sensible message.

Have you checked the clients for error logs or entries in the application event log?