то ли WinAVR в *.elf файл так пишет пути к файлам, то ли протеус так их оттуда читает, но для нормальной отладки надо сделать так, чтобы проект протеуса лежал в корневой папке проекта, т.е. вместе со всеми исходниками.
протеус не считает порт ввода-вывода, а так же любой регистр управления периферией, за переменную, а WinAVR считает. поэтому отследить содерджимое PORTB, ADCSRA, TIMSK и т.п. вещей в протеусе можно только при помощи просмотра содержимого области памяти портов ввода-вывода - очень неудобно... но никуда не деться.
на счет --- в исходниках при отладке в протеусе - это вам "оптимизатор" подгадил

чтобы каждая строка имела соответствующий ей код, надо отключать любую оптимизацию в проекте, в противном случае оптимизатор обязательно часть кода вырежет, и протеус будет думать, что некоторые строки программы никогда не выполняются (возможно, оно так и будет).
можно попытаться отлаживать в виде связки
PROTEUS+AVR Studio: последние версии студии имеют плагин для отладки через протеус
Proteus VSM Viewer. вам надо будет при выборе платформы для отладки выбрать не симулятор студии, а этот самый плагин, тогда у вас внутри студии откроется окно протеуса, в нем - схема со всеми навоторотами... и тогда вы будете код и регистры смотреть в студии, а всякие аналоговые штучки и прочие светодиоды-кнопочки нажимать в протеусе
правда, у меня такой гибрид не очень стабильно работал, иной раз вылетал. возможно, уже все пофиксено - не проверял.