This worked for me (from Microsoft.com) ...
This may be caused because the “NT Service\MpsSvc” account does not have adequate permissions on the following registry key
Windows 7 (all versions) / Windows Vista (all versions)
Then re-start the Windows firewall service, now my McAfee firewall stays 'on'.
I had the same problem and suspected a virus. This fixed my problem:
Run the ESET rogue app remover below in the link below first and then run the ESET servicesrepair.exe found on the page in the second link. After that, reboot.
At first Mcafee kept warning that the firewall was off but then it stopped and said all was fine and that the firewall was on. When you went to the firewall settings it said it was off and if you clicked to turn it on it would blink on for a sec and then turn off again. I tried all kinds of fixes but the one above finally worked.
Message was edited by: bfender on 5/6/13 1:31:54 AM CDT
Please go to Services (Start>Run>type and enter "services.msc") and check if Windows Firewall is started and set to Automatic startup.
If Windows Firewall service is not started: try starting it up by right clicking and selecting the start option. (Following steps are valid only on Win Vista and 7 OS)
If Windows Firewall is started and is set to Automatic startup, then please verify if both McAfee Firewall services are running and set to Automatic start up type.
In case, everything is fine with McAfee services too, please try doing a complete re-installation of McAfee (Do run MCPR tool).
If there is any problem with the McAfee Firewall services, please do let know. Will look for further work arounds.