I did some testing. I had only the 6 original robots and codsworth at graygarden.
With codsworth as the leader, the happiness peaked at 55 and would not go above it. The happiness report said it should go to 57 the next day, but it never did. Everything is full in the happiness report, but there is a -20 for robots and a -1 because I have an iron mine.
Interestingly, when I made supervisor white the leader (from a leader pack - she does not have robot moral officer), the happiness immediately went down to 38. Over the next few days it went up to 43 and stayed there. Then I reassigned codsworth, and it jumped to 58 and stayed there (and the happiness report is saying it should be going up to 59, but it doesn't).
Can somebody do some further in game testing on Robot Moral officer? At the moment, I don't see how it is viable to upgrade graygarden or any plots within (without doing that other ad hoc fix you mentioned).
I'll try to do some testing using red rocket with only 1 robot and codsworth if I can.