Generally, my thinking is that Morale would be a Property that would transfer between units and cities much like properties do. But these would be influenced by local victories and failures in battle, units and buildings with influences, and (this is where we need a tweak I think) MUST be tracked by each civilization independently of the other. Thus this particular property must be located on the player, not on the globe.
Then units, when of particularly high morale levels, will gain temporary 'free' promos that would tend to invigorate them and make them more intrepid and strengthened. While units with low morale levels will gain temporary free promos that would weaken them, make them flee battle early, potentially even be destroyed during battle by complete dispersal (route). Most of the very applicable tags for these kinds of effects exist for promos now but the morale property mechanism will need a little work. Then we can start planning morale effects. Cities too would have autobuildings to show city modifiers based on the morale of the people. Buildings like you're working on now but putting some patches on would be morale generators. Many crime buildings might reduce morale. And so on. Of course civics would play a role as well.