Спасибо большое, Akdmeh. Причина была в библиотеке HTML_FormPersister, обрабатывающей формы. В ней было выполнение htmlspecialchars через call_user_func, без указания кодировки, а так как у htmlspecialchars начиная с php 5.4 дефолтная кодировка utf8, все поля приходили пустыми.