То return false; срабатывает как нужно и не перезагружает страницу.
А когда я вставляю динамически эту форму через ajax из скрипта php - то кнопка перезагружает страницу.
Без код JS так просто и не скажешь, но скорее всего у вас скрипт запускается и вешает события, а страница еще не догрузилась и выходит что на форме нет события. Перед тем как вешать события надо проверить что страница загрузилась, если используете jQuery или еще что, то проверить чтоб он загрузился и готов