I have a similar thing working on a project I'm working...
What I do is something like this:
foreach(Zone zone in webPartManager.Zones){
if(zone.Name == WebPart.Zone){
webpartManager.addWebPart(webPart);
}
else{
insertWebPartIntoCatalog(WebPart);
}
}
This is pseudo-code but I bellieve you get the point

Hope it helps...