UT_SetSurrenderFlag does a few things that you might be missing when you try setting it up on the template manually.
First, it sets the SURR_SURRENDER_ENABLED flag to 1. This variable must be set for surrender to work.
Second, it sets the creature to be immortal. This is something I forgot to mention above. Immortal creatures cannot go below 1 health, and without it, a creature will only surrender on the rare occurrence that they are reduced to 1 health without being killed.
Third, it sets the SURR_INIT_CONVERSATION flag to 1. Without this flag, enemies will stop fighting, but they won't talk when they get to low health.
Fourth, it sets the SURR_PLOT_NAME and SURR_PLOT_FLAG variables. If you wish to set these on the local variables, the format for the plot name is in the above example, plt_dmo001_dafl001d_plot. You don't put the .plt. The flag is the flag number, which is 39 above.
SURR_DIALOG_OVERRIDE is only used if you want to use a conversation other than the one attached to the creature. The format, for a conversation file my_conversation.dlg is my_conversation.
Using the function is a good way to set up a surrender as it does the work for you, so I'd recommend sticking with that. However, it should still be possible to set it up manually.