ScroogeM: пока понять проблему тяжело. Я бы начал дебажить с того, что посмотрел бы, вызывается ли метод form_validation. Например, просто вставив туда отладочный принт. Если вызывается, то надо смотреть методы save(). Если нет, то разбираться, почему нет.
По Фейсбуку: можно пояснить, какие риски предполагает работа с ним. Закончив разработку сайта, вы будете проходить ревью. А там вполне могут не разрешить taggable_friends, потому что это не предназначены для вашего сценария. Кроме того, в будущем Фейсбук может решить прикрыть какие-то апи, и у вас поломается то, что нормально работает. Я бы использовал какие-то такие аргументы (помимо того, что у Фейсбука в принципе интересных данных в АПИ меньше, чем у ВК).
По тестам: думаю, не стоит рассчитывать, что юзер-менеджеры смогут сами писать какую-то сложную логику. Я бы предложил заранее составить некоторый список типов тестов (например, «тест, выбирающий случайного друга», «тест, выбирающий один из заданных результатов по возрасту») и реализовать их в коде. А менеджеры уже будут при добавлении тестов выбирать тип из этого списка.