The OS chooses a default adapter, but the application always has the final choice. D3D11CreateDevice takes an adapter as the first parameter. I see you're using C#, and I'm not sure how the wrappers expose that, but it should still be there. The default render adapter selection is (typically) based on which monitor is marked as the primary monitor (where the system tray is located).
The monitor is an optional parameter to SetFullscreenState, if you enumerate it yourself. If you don't, we go for the monitor where the window is currently located. If that's not attached to the GPU that you're using for rendering, you can't go fullscreen**. The monitor where the window launches is kind of random.
It depends on the laptop, whether the external outputs are connected to the integrated or discrete GPU. Both scenarios are fully supported.
** The one exception is in the Optimus/PowerXPress case, where we enable fullscreen with discrete GPU rendering and an integrated output.
Im writing in C# and I have a function that enums the adaptor and all the modes. This allows for you to select the adaptor and the screen attributes (say refresh) that are valid. I post it later today.