Your sample data amounts and the totals you show on the output does not match. I am assuming that it is a typo. Use the following DFSORT JCL which will give you the desired results.
I assumed that your input RECFM=V and output is also V and you just the name, lname and the amt in the output.
I also assumed that the name and lname fields are 30 bytes each and the amt is 15 bytes including decimals.
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DISP=SHR,DSN=Your input VB file
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC IFTHEN=(WHEN=INIT,
PARSE=(%01=(STARTAFT=C'<NAME>',ENDBEFR=C'</NAME>',FIXLEN=30),
%02=(STARTAFT=C'<LNAME>',ENDBEFR=C'</LNAME>',FIXLEN=30),
%03=(STARTAFT=C'<AMT>',ENDBEFR=C'.',ENDBEFR=C'<AMT>',FIXLEN=13),
%04=(ENDBEFR=C'<AMT>',FIXLEN=2)),
BUILD=(1,4,%01,%02,%03,JFY=(SHIFT=RIGHT),%04,UFF,EDIT=(TT))),
IFTHEN=(WHEN=INIT,OVERLAY=(65:65,15,SFF,PD,LENGTH=8))
SORT FIELDS=(5,60,CH,A)
SUM FIELDS=(65,8,PD)
OUTREC OVERLAY=(65:65,8,PD,EDIT=(IIIIIIIIIIIT.TT))
//*
If you need a FB file then remove the OUTREC statement and use the following
OUTFIL VTOF,BUILD=(5,60,65,8,PD,EDIT=(IIIIIIIIIIIT.TT))