R, 139139 122 bytes
-17 bytes thanks to Giuseppe
u=utf8ToInt;i=intToUtf8;o=rep(c(repu=utf8ToInt;`*`=rep;o=c(' ',12)'*12,' '),7);o[u*7;o[u("'" &3@LKWVUTSRDC5()78FS`lkwvutsrdcUH;/0$%&"")-32]=LETTERS[]=LETTERS[(13:38+u(scan(,'')))%%26+1];cat(o,sep='') Explanation:
o=rep(c(rep(' ',12),' '),7) Builds an empty box of spaces
u("'" &3@LKWVUTSRDC5()78FS`lkwvutsrdcUH;/0$%&"")-32 is a set of indices for letter positions corresponding to:
c(7:9,23,24,38,51,64,76,75,87:82,68,67,53,40,27,15,16,4:6)