Hello 
could you provide this output:
nmcli device show enp3s0
with
nmcli device mointor enp3s0
you could watch the the actions, which are made with the NetworkManager.
Also useful to load the module r8169 in debug mode. Here a little script:
sudo rmmod r8169 && sudo modprobe r8169 debug=16 && \
sudo systemctl restart NetworkManager && sleep 20 && \
[[ "$(ping -4 -c 3 whatismyipaddress.com)" =~ "0% packet loss" ]] && echo "ipv4 works" && \
[[ "$(ping -6 -c 3 whatismyipaddress.com)" =~ "0% packet loss" ]] && echo "ipv6 works"
After that watch the journal with journalctl -f for more information.