Already a good answer here, but I try to highlight the problem from a slightly different point of view. When you are going to implement a full retrograde analysis for KBBK, you have to generate all KBBK positions, which are less than 32*32*62*61*2. The "32" is the number of squares for the bishops, the "*2" takes into account which player moves next; and not all 32*32*62*61 theoretical placements of the four pieces are legal (obviously, you can exclude any positions where the kings have a positional distance <2).
For the analysis, take these positions as the vertices of a directed graph, and the edges are the legal transitions from one position to the next (according to the possible moves).
Now, mark the positions where white moves next and the black king could be captured by a white bishop. Technically, capturing the king is not legal according to the classic chess rules, but lets assume for a moment it were legal and call these positions "mate in -1". The "mate in 0" positions then are the vertices in the graph where black moves next, having only "mate in -1" sucessors, and where the black king is already checked (when there are just "mate in -1"-successors, and the black king is not checked, it is a remis situation).
More generally, a position where black moves next is a "mate in x+1", when x is the maximum of all y among the successors in the graph with a "mate in y" position, and there is no remis situation. When black moves next and there is at least one remis position amoung the successors, the current position is a remis situation, too. A position where white moves next is a "mate in x+1", when x is the minimum of all y among the successors with a "mate in y" position (regardless of remis positions). When white moves next, a position is only a remis position when all successors are remis positions, too.
So "mate in 0" positions can be simply identified by applying the first step of your retrograde analysis.