If the device is relatively short and you want broadband result, you can use FDTD. With mode source or port, you should use PML, except the structure has infinite periodicity. In such case you can use "periodic BCs". Bloch BCs are for periodic structure with angled plane wave incidence only.
In most cases EME is better, as it can reuse the periodicity: you only need to draw one period then you can set the number of periods before running "eme propagate".
As I did not see exactly the configuration of your device, those are my suggestions. please try. If you have new questions please write a new post.
Please note, in FDTD, when the periodic type of BC is used, it assumes infinite periodicity; Whereas in EME, except that you set the boundary conditions, the number of periods is alway finite.