It’s probably that the devices UICR register was erased when you used the --wipe option in the adalink command. The UICR register tells the system where to load the bootloader. It should point to the start of the bootloader, which is 0x3c000.
That is relatively easy to fix, it requires building the bootloader with an extra line. The reason we don’t do this by default is because of how the gcc compiler creates binary files. It would fill in all space between addresses 0x3c000 and 0x10001014 which makes the binary file 256MB!
Still, that wouldn’t cause the issue you are seeing. It still sounds like the device is rebooting and not having issues with connections. What gcc version are you using to compile? I assume you are on the latest ‘develop’ branch of code?
Could you possibly add some code to the setup() function to blink the LED on D7? This would prove/disprove my theory, if the LED blinks when trying to connect when the green blinking slows back down, it would prove that the device is rebooting during connection. This could be helpful to find the root cause.