First, I'm no mechanic, but have built up a couple of bikes and am not afraid to install / adjust my own derailleurs.
If the adjustments work for a while and then start messing up, and since it's a relatively new bike, it almost sounds like either cable stretch or friction problem. Cables should be pre-stressed when installing, but by now they should be properly broken in. Another possibility is maybe the cable friction is increasing for some reason.
On the FD, the cage should be within 1-2 mm above the large chainring teeth...just enough to prevent the teeth from hitting the cage. Having it as low as possible helps control the chain better. (Adjusting cage height will alter the cable tension so you'd have to redo the clamping of the cable and limit screws.) When in the small front / large rear combo, the chain should almost be rubbing on the FD cage. Adjust the limit screw until it barely rubs, then back off a hair. Also you could play with the alignment of the cage, as far as being parallel to the chain rings. If the cage is not aligned just right, even adjusting the limit screw so the chain almost rubs may leave the front of the cage too far inward to prevent the chain from coming off. It takes some fiddling. The other thing is, when the chain falls off on the front are you cross chaining? That can make it more likely to come off.
You might also want to try a chain keeper to prevent the chain from coming off.
On the RD: did any of the mechanics check your RD hanger for alignment using an alignment tool? I had a brand new bike with a bent hanger, and it messed up the shifting. Also I have a bike where reinstalling the rear wheel always messes up the shifting, as it makes the RD hanger and cage flex inward by some amount depending on skewer clamping pressure. If it's nothing to do with hanger alignment, my guess is it could be a cable friction issue of some kind.