Нужно сначала понять, что вообще у вас происходит.
1) Slave принимает фрейм? Поднимите на контроллере отладочный UART и шлите в него всё, что принято по RS-485. Все ок? Едем дальше.
2) Slave передает ответ? Подключите к линии RS-485 отдельный адаптер и посмотрите через терминал, что там вообще передается. Посмотрите осциллографом, что творится на выводах UART контроллера. Проверьте, что пин RTS действительно работает. Нет осциллографа - хотя бы светодиоды воткните, будет видно, тишина там или какие-то шевеления.
3) На физическом уровне все хорошо, но MODBUS все равно дает отлуп по таймауту? HEX-редактор в зубы, и изучайте перехваченные фреймы. Ответ формируется корректно? Размер поля данных соответствует заголовку? Контрольная сумма правильно считается?