You will need to create a table to translate all the common nickNames and shornames to the fullName
nickname Fullname
Bill William
Joe Joseph
Bob Robert
and use that table in the join. You will not get a hundred percent match but will get better results than what you are getting now.
Another option is to group by the CustomerID and then use the customerID to get the top one FirstName and lastName.