Separate objects per tile is probably the simplest way to learn, but I agree that it can quickly get out of hand. If you're looking for other options, here are two:
-Here's a series of tutorials on drawing isometric maps. It uses XNA, not Unity, so it would take a bit of translation, but at least they're both C#. Part 7 deals with tile picking.
http://www.xnaresources.com/default.asp?page=TUTORIALS-Or, you could construct a matrix that you apply to the world coordinates, resulting in the corresponding tile coordinates, and vice versa. The following link gives the basic concept, but since you're in Unity, you can accomplish the same thing using its Matrix4x4 class. This is the option I'm going with for the isometric game I'm working on.
http://www.alcove-games.com/advanced-tutorials/isometric-tile-picking/Either of these options should be possible to expand to multiple layers by retrieving all the layers contacted by the raycast and accounting for any offset you apply to the upper layers.