Is that a typo, or are you missing the '$' in front of value, i.e. (your 2nd line)
let "var=$value"
which I think should really be
let var="$value"
You can eliminate a lot of problems while you're building your script by turning on the shell debugging feature, i.e.
set -vx
let "var= value"
set +vx
Or put set -vx near the top of the script and see how all of the script is processed.
EDIT3 OR put -vx after #!/bin/bash on the first line, i.e. #!/bin/bash -vx.
EDIT2 I missed your first comment, yes, line1 looks problematic too. Try this
let value="$(awk 'NR==14' ${TEMP_DIR}/IR4723/count_part_UNVM.txt)"
Note that using backticks for cmd-substitution was declared as deprecated in the 'New Kornshell Language' ~ 1995. $( ) for cmd-substition is easily nestable and your best bet.
ALSO, note that an awk script (on a cmdline) should be presented as single argument, by surrounding it with single or dbl-quotes. (But I'm not absolutely certain you need quotes given that your 'program' has no spaces in it.) If the revision doesn't work, add print --"value=XX${value}XX after the assignment and edit your question above to show the output.
EDIT Per your comment/question, there are a few shell script debuggers around, but I never use them. Search for Rosenberg ksh book debugger, if you really want to try it.
The set -vx should really be called an "execution trace". It shows you the line or block of code before it is executed, then with any variables expanded to their values. That it the typical way people debug ksh scripts. You can also add statments like print -- "var=XX${var}XX" to see individual values of variables, but that can mess up your output and may required you to turn of those statments, forcing you to edit your script again.
I hope this helps.