There are a number of problems with that piece of code (and this is just what I can see via my phone):
- the date parameters are not used in the proc
- ContactMaster should probably be a temp table (#)
- you join twice to ContactMaster on the same colum, Cdestination <-- MAJOR PROBLEM
- you appear to have missed my point about duplicating code; clean the data once and once only. Try to avoid joins with functions.
- you appear to have got rid of the cleanPhone column. Why?
Make these corrections, see if you still get the duplicates.