Combining the work into a single file that you load your multiple translations into is going to be the most efficient workflow, especially when you’re working with large projects, and I’ll explain why I think so:
Most, if not all of those issues you mentioned with having a single file can be avoided at the design-level. Trivantis provides decent advice on this, including video instruction, but I think the key takeaway is that when you’re creating content, you would (ideally) be keeping in mind that where text-content is concerned, every language takes up a different amount of space on the page to say the same thing. Obviously you’re already painfully aware of this, as when you translate your projects you’ve noticed how things get moved around on the page.
The best way to accommodate that is to plan your stage-space around the largest content you’ll have. In other words, determine from whichever languages you’re providing content for which takes up the most raw space, and plan your content around that (text box sizes, image spacing, etc.). That way, when you publish with other language translations, they’ll only take up less space, never more, and your content won’t get displaced by the subsequent translations. If you’re unsure which of your languages are taking up the most space, you’ll either have to experiment a little to find out, or just play it safe by adding plenty of padding to your text boxes/object spacing so there’s room for expansion should a translation take up more space.
This should solve your problem of needing to make edits after publishing new translated content, which in turn will dramatically reduce the time required to support your additional languages!
As a side note: The issue of multi-language support becomes a little more complicated if you start adding custom HTML text content to your projects, but that’s it’s own issue and if you’re doing that, chances are you probably already have an idea of how to accommodate that.