I'll take a bit of a deep breath before responding because I don't want to come across as harsh.
BA's system for seating people together when on separate PNRs is manual. That means the automated reallocation process that happens when an aircraft change occurs (and there's no way that could be manual) won't notice the link.
So if we accept that's the bit at fault here ...
It sounds like BA did everything they could on the ground. They tried paging passengers for moving, they were offering people money to move (and given you had connections they probably didn't offer it to you) etc.
Would you rather have had someone forced out of their seat to accommodate you? What if they had paid for that seat? What if they were a GGL? What if they were sitting opposite their child?
In the end - the right thing occurred - the passenger next to you was asked to move - presumably he got the upper deck seat (an improvement) and your hubby got the lower deck seat.