Something may have changed from R2015b to R2017b but I would say that your usage of bdroot() for this purpose is not robust. "Simulink" is the opened Simulink library file name. bdroot without input argument could return any root level model name depending on which one is activated.
Use bdroot(block) or bdroot(BlockHandle) to return the root level model name of the selected block. Or, use ModelName=bdroot once when it is certain and pass the ModelName to other places.