When creating connections and channels we do not store them under client prefixed stores. They are stored under the IBC prefix and then either channelEnds or connections. When verifying connection and channel states for light clients we pass the client prefixed store, so the client can access the consensus states if necessary. The localhost was using this client prefixed store to verify connections/channels. Unfortunately, connections and channels are not stored there, so this check would always fail.
In principle, the localhost client should just have a read-only wrapper over the IBC store. Sounds like that might take awhile.
For now, I think it is reasonable to disable the localhost client.
Also relevant to fixing localhost Localhost acknowledgement verification needs to use types.CommitAcknowledgement