Как пояснить клиенту что такое технический долг и рефакторинг?
Клиент понимает только цифры, ему плевать на качество кода ровно до той поры, пока поддержка кода не станет ему в копеечку лишнюю. Приведите ему реальные доводы ЗА рефакторинг выражающиеся профитом в денежном эквиваленте и вуаля. Ну а если этих доводов нет - только личное мироощущение, то нужен ли рефакторинг?
Ну и коль уж мы про цифры, клиентов и технический долг, а как вы убедили клиента оплачивать вам время на написание тестов? Вы включаете это во время разработки при оценке стоимости? Что мешает заложить и рефакторинг критических мест. Вы не пишите тесты? Тогда о каком рефакторинге имеет смысл вести разговор? Тогда доводы должны быть просто железобетонные, что бы не тратить время на фул-тэст и поиск регрессий.
ИМХО, рефакторинг нужен, главное понимать зачем он нужен и решает ли это ваши проблемы или проблемы клиента. Если ваши - тогда делаете "по тихому", закладывая в эстимейты, если решает проблемы клиента -- можно попытаться это дело продать "отдельно", но и ответственность придется брать "отдельно", а оно вам надо? 
Ставьте сроки повыше, объясняя повышенной запутанностью кода, и предлагайте, что можете навести порядок за столько то, и клиент выиграет уже через столько-то.