First of all, I solve corners and edges using a modification of Old Pochmann: I must not do U-moves, because it will mess inner centers. Therefore I use (F M2 F2) V-perm (F2 M2 F') instead of Y-perm without F for corners, (M2 T-perm M2) instead of T-perm for edges, and during setup moves for edges I can't use Dw (it is an U-move), so setup moves for some edges become more complicated, I use some PLLs for them.
After the first step, centers will change their places (it is not typical for bld solving), but they will remain inside those corners and edges where they were at the beginning, so it is easy to predict their position during inspection (though a bit practicing needed). The second step is solving the centers. I use commutators of the type SABA'B'S' where B is pseudo-U2: U2 F2 M2 F2 U2 F2 M2 F2 (had to write a program to make this algo). Pseudo-U2 does nothing on the ordinary 3x3x3 but rotates centers on the upper layer on Crazy Jupiter. So the setup move S must move one of 2 pieces of 3-cycle to the position that U2-away from the buffer.