info mv has this:
_Note_: 'mv' will only replace empty directories in the destination. Conflicting populated directories are skipped with a diagnostic. There is no option to overrule that, so it seems. Either remove B and rename A (back to B), or empty/delete the directories in B by hand first.