Almost same but a bit different:

From your script:

    #!/usr/bin/ksh 
    
    save_var()
    {
    
        (for ITEM in $*
        do
            LVALUE='${'${ITEM}'}'
            eval RVALUE="$LVALUE"
            echo "$ITEM=\"$RVALUE\""  
        done) >> $cfg_file
    }
    
    restore_vars()
    {
        . $cfg_file
    }
    
    cfg_file=config_file
    MY_VAR1="Test value 1"
    MY_VAR2="Test 
    value 2"
    
    save_var MY_VAR1 MY_VAR2
    MY_VAR1=""
    MY_VAR2=""
    
    restore_vars 
    
    echo "$MY_VAR1"
    echo "$MY_VAR2"


This time above is tested.