This might be a really dumb question, but why do boats carry cargo above water? For example, I can pick up a rock under water that is too heavy to pick up on land. The water has an upward lift on objects. Why don't cargo ships carry things in watertight containers under the boat? The boat would not need to be as big or as strong. Am I overlooking something?
Modern container ships do usually have containers below the water line, and they usually do have a double hull (hence all of the containers are in a watertight container, the inner hull).
You are also correct to think that maybe we could box up individual containers as neutrally buoyant boxes and then drag them around underneath the water. The reasons that we do this are more engineering-related than physics-related. First off, it turns out that submarines are hard to build in general, so making each container into what's effectively a submarine (with ballast tanks and stored compressed air to try to surface when there are leaks etc.) is relatively complicated. Given that, all of the containers would probably be kept positively-buoyant and therefore would float on the surface, so what you're describing is essentially a very wide container ship rather than a very deep one.
In addition, the shape and dimensions of the hull are chosen to maximise certain features, such as speed and therefore economy. This includes streamlining the shape of the hull to reduce drag and so save on fuel. So it's a combination of "making robust static structures is much cheaper than making robust dynamic structures that can maintain neutral buoyancy" and "we want to get this stuff from London to Mumbai. Who can get it there fastest and most reliably?' that causes this double-hulled relatively-deep streamlined structure of container ships.
You are on the right track. Water exerts enough upward force on the ship to hold the cargo and most of the ship above the water.
Water exerts a bigger drag on things moving through it than air does. So keeping things above the water takes less fuel.
A ship makes a hole in the water and fill is with the ship. Without the ship, this hole would be full of water. Either way, the water around the hole presses inward and upward. The force is just enough to hold up the ship or water. That is, the ship weighs the same as the water that would fill the hole made by the ship.
If you add more cargo to the ship, it sinks a little deeper into the water and makes a little bigger hole.
If you know the size and shape of the hole, you can figure out the weight of the water needed to fill it. That is the same as the weight of the ship.
This calculation gets easy if you choose a cubical "ship". Or perhaps a cylindrical ship. For example, you could try this out with a rock and an empty paint can.