I've been monitoring this thread for a while and have decided to jump in. I've re-read the posts and didn't see this possibility noted.
IIRC Kerio has a mechanism that will detect if/when an application has been modified since the last time it's hash was calculated. I'm thinking that, perhaps Kerio is seeing each new iteration of Avast.Setup.exe as a different program (something in it's hash being different for some reason - creation time?) and therefore blocking it.
I use Outpost Pro 2.5 firewall and I've had a devil of a time getting Avast v4.5 to work smoothly. I can still check my logs and see that Avast has been blocked from an automatic update at one point in time and allowed exactly 4 hours later - without any activity on my part at all. Sometimes the rules work; sometimes they don't.

It wasn't until I set up Outpost to ignore changes to Avast.Setup.exe's hash (Component Control, in Outpost terminology) that things started working more often than not.
Another thing not mentioned and may be a factor is if your Kerio configuration is blocking local loopback addresses. Adding loopback rules to Outpost's Avast rules was necessary for me because I block loopback as a default rule. My logs show Avast.Setup using the loopback address for something. I suspect that when setup.ovr is "mutated" into Avast.Setup.exe the loopback address is used.
At any rate, although my logs show blocked connections, they also show allowed connections, and Avast is (almost) always up-to-date whenever I check it. Perhaps these ideas will be of some help to you.
Best of luck. Avast is worth whatever effort it takes to get it to work; including manual updates (which I did for a while while I figured it out.)
