Why is my model unwrapping wrong?
Marking seams is the right way to do it. It got split into three pieces because you marked TOO MANY seams. Think of the model as a paper box that you have to unfold flat. ONLY mark the seams where you'd have to make cuts in order to lay the box flat. Don't mark seams all the way around.

Even still, it might not unwrap straight. You may still have to tweak it a little, but that's why nobody likes UVs ;-) Your most useful tool in this case will be scale.
Select a horizontal line of UVs, then type S > Y > 0. That will scale them flat along the Y-axis, making them perfectly horizontal. Then you you can move them up or down. It's tedious, but that's the way it's done.