Ой-ё-ё!

Вынужден констатировать, что вы,
mzhelezkin, как минимум слабо разобрались с работой периферийных модулей. Так что читайте
MSP430x5xx Family User's Guide до полного просветления. Вам еще повезло, что вы случайно не установили глобальный флаг разрешения прерываний. Иначе вообще бы все рухнуло.
Ну а саму программу следует сначала описать в виде алгоритмов и конечных автоматов. Судя по всему, у вас в голове нет алгоритма, есть только мысль, что оцифровка сигнала заключается в том, чтобы считать слово из АЦП и запихнуть его в какой-то регистр таймера. И при этом все должно автоматически заработать. В этом вы "слегка" ошибаетесь, забывая про "овраги" (гладко было на бумаге, да забыли про овраги).
Во-первых, АЦП не дает результат моментально. Для оцифровки аналогового сигнала требуется определенное время. У вас же в программе считается, что результат готов всегда и моментально. Нужно использовать опрос флага готовности результата АЦП перед тем как его (результат оцифровки) считывать.
Во-вторых, параметры ШИМ нельзя менять в произвольное время, а только по окончании текущего импульса ШИМ. Иначе будет то, что у вас и получается - свист, писк, треск и потусторонние голоса. Для этого в MSP430 существует специально разработанная аппаратура таймера. Изучите ее работу.
В-третьих, нужно обеспечить синхронизацию оцифровки звука и вывода звука, чтобы частота сэмплирования на входе и выходе была одинаковой. В связи с этой проблемой нужно правильно настроить систему тактирования микроконтроллера, чем вы вообще не озаботились. Про теорему Котельникова (Котельникова-Найквиста-Шеннона) что-нибудь слышали? Если нет, то поГуглите. Обязательно!
Про формирование сигналов с помощью таймера, генерирующего сигнал ШИМ, в MSP430 почитайте
Using PWM Timer_B as a DAC. Вот
в этой книге есть его вариант перевода на русский. Там же, кстати, и про архитектуру MSP430 кое-что разжевано.