After reading the documentation again, i came across the line "When you pass a profile type obtained from the CurrentProfileTypes property, make sure that you pass only one profile type to get_FirewallEnabled and put_FirewallEnabled. Note that get_CurrentProfileTypes can return multiple profiles."
(http://msdn.microsoft.com/en-us/library/windows/desktop/aa365316%28v=vs.85%29.aspx)
And yes, i have actually got more than one profile type returned. So the API works when you only pass one profile to the get and set methods of FirewallEnabled. e.g.:
result = (fwPolicy2.get_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC));