Не знаю, что вы называете «хинтом» (вообще-то это всплывающая подсказка), по-видимому, вид самой метки.
Пресет меняется так же, как и любые другие опции.
Использование API Карт (что Яндекс, что Гугл) запрещено в закрытых и/или коммерческих системах. Переживать, что вычислят, стоит.
Лучше использовать OpenStreetMap.
Бесплатно рассчитывать неограниченное количество маршрутов не даёт никто (у Яндекса ограничение 25К/сутки). Можно поднять свой сервер OSM, но сервера нынче тоже не бесплатные.
Единственное, что могу предложить — считать расстояния по прямой, а не по дорогам.
Вообще так делать не надо. Ваше решение плохо тем, что оно не кэшируется, т.е. сдвиг карты на 1 пиксель приведёт к перезапросу всех данных habrahabr.ru/company/yandex/blog/243665
Вообще, без примера кода ответить на такой вопрос затруднительно.
Но я предполагаю, что у вас неправильно выставлена опция iconImageOffset, т.е. неправильно задана точка привязки иконки к карте.