First thanks for posting the sp. The code it generates uses sp_dropuser and that does not work for usernames that contain periods. One of the applications we use creates usernames in the following format: vdb_First.Last
EXEC sp_droplogin vdb_First.Last
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
Looks like you need to enclose your output like you did with the sp_dropuser:
PRINT 'EXEC sp_droplogin ['+ @SpecificName +']'