The idea of HEAD is that every time a developer starts a task, they start with HEAD, and when they are finished they merge back into HEAD. That way you always know where to find the latest version of the code.
You are doing something different. It sounds like each programmer begins by selecting a somewhat arbitrary tag from the existing tags and starts from there. That sounds like it would result in a huge mess, but I don't really know what you are doing or why you are doing it that way.
Regardless, you aren't using HEAD the way the recommend practices suggest. As a result, keeping HEAD building is pointless. If you aren't going to use HEAD the way it its intended, don't spend time maintaining it.
However, you really should consider using the version control system the way it was intended.