Not sure about the fee, and not sure what the current behavior for change should be may you use a segwit address without specifying a change address.. so to guarantee that you get your bitcoin's change back in a segwit address, simply create a receiving segwit address and enter that address in the options (see "custom change address"), after enabling "Coin Control" feature:

This way you will do exactly what you want to do.
Unfortunately I only use the command line interface. I am not sure I can set a specific segwit change address via cli.
So you use bitcoind? Why not use the GUI? Sure using bitcoind may save you from some surface attacks introduced by GUI usage... but if you are running your node on a linux machine and you aren't doing anything stupid, it is perfectly fine to use the GUI in most cases, and you guarantee you don't enter any command line that does what you didn't want to do so that is to consider as well.
In any case if you still want to use bitcoind:
https://en.bitcoin.it/wiki/Raw_TransactionsBut I can't find anything specific for change addresses..