I've run into the same problem - I'm not sure when virbr0-nic is supposed to be attached, however in my case it's not attached at host boot, and it's not attached as a pre-step when launching a libvirt session based VM (e.g via Gnome-Boxes).
My solution is using Network-Manager (F24 default) then virbr0-nic can be attached to the actual bridge when it first becomes available using dispatcher scripts. This is what I've done.
1. Create the dispatcher script: /etc/NetworkManager/dispatcher.d/99-virbr0
with the following content. Make sure virbr0 and virbr0-nic are the correct names in your environment
# See the "DISPATCHER SCRIPTS" section of `man NetworkManager`.
# Remember to make this file executable!
# Remember to ensure the correct SELinux Contex
[ "$1" != "virbr0" ] && exit 0
case "$2" in
# Attach the dummy interface to the bridge.
/sbin/ip link set virbr0-nic master virbr0
sudo chmod 755 /etc/NetworkManager/dispatcher.d/99-virbr0
3. Ensure the script is labeled in the correct SELinux contect
sudo restorecon 755 /etc/NetworkManager/dispatcher.d/99-virbr0
Now even after the host reboots, the virbr0-nic is attached to virbr0 bridge which provides constant MAC address for the bridge. Now when a windows VM starts up, NLA retains the same network profile