Hi everyone. I came across this same issue. Everything with my ownCloud installation was working perfectly expect this one thing, and it was driving me a bit nuts. Playing around with different link combinations (principals, users, dav/carddav, etc) I eventually figured that if entering a certain server path (ie. /owncloud/remote.php/dav/principals/users/USER) resulted in the macOS settings accepting the entry, the server was obviously telling my mac that this address was fine, and that there was in fact an addressbook accessible there. When looking in the Contacts settings, under the General tab, you'll see a Default Account dropdown box. If your ownCloud server is listed here, that means the system has registered it properly.
So the settings were fine (apparently) but my Contact list remained empty. I then tested it by creating a new contact.. and voila! All my contacts showed up. It seems the first sync is not automatic, and so you have to actually push something new to the server.
So if macOS accepts the settings/username/password you give it, the server is giving it the OK. Try forcing the first sync with some new info and see if that helps. For reference, my complete settings in macOS Sierra are:
New Account: Carddav
Server Address: https://owncloud.example.com
Server Path: /owncloud/remote.php/dav/principals/users/[username]
Good luck! This can be frustrating, I know.