I know it has been a while, but I have had this same issue with flags being turned off even though I specify them as on. I did a lot of checking and testing, and it seems it has to do with the way the ISPConfig parser takes in the "php.ini" value and converts it into a php_admin_value[var] = value.
It seems that if it has no double quotes (if it is not text), and it is not a number, it assumes it is a boolean value and must evaluate in a specific way. In terms of boolean interpretation, it is my guess that "on/off" means nothing to the parser, therefore it will always evaluate as false, which means "Off".
I finally figured out that if you enter the value on the "Custom php.ini directives" as for example:
display_errors = true
The parser will then write the conf file as:
php_admin_value[display_errors] = true
which will translate as "On" for all purposes and the change will take place. I hope this can still help someone.