What do you mean by "the IDs are still not correct" ? The ID column in the users listing of HikaShop is the user_id not the user_cms_id, so it's normal it doesn't match the id of the user in Joomla.
And "I still have users without names and usernames" could be just because you have guest users. When someone places an order as a guest he will appear in the HikaShop user listing without a name/username.
So both could be normal.
The question is whether you see the address of someone else if you login and access the checkout (and you need to first delete the cart and logout/login so make sure the address is not cached).
I checked the code of the check database button and it runs this MySQL query:
UPDATE `#__hikashop_user` AS hku LEFT JOIN `#__users` AS ju ON hku.`user_email`=ju.`email` SET hku.`user_cms_id`=ju.`id` WHERE hku.`user_cms_id`!=ju.`id`
So after this query run, it's not possible that you still have a user in HikaShop with a different user_cms_id than the id of the user in HikaShop if they both have the same email address. So if you say that's what you have, then there is something else to it like you've clicked on check database on a different website than the one where you're looking at the users or something.