Why slice(1) is the whole trick
Every source tab has a header row. If you concatenate raw getValues() arrays, you end up with a header embedded in the middle of your data every time a new tab starts. The fix is a single slice(1) call on every tab after the first, which returns the array starting at index 1, skipping row 0 entirely. The first tab keeps its header intact; everyone else donates only their data rows.
The first time I hit this, I spent ten minutes wondering why my VLOOKUP kept breaking halfway down the Combined sheet. It was a buried header acting as a value. slice(1) is the entire solution.