I always have a single result from the stored procedure and that result is always of the same schema. Think about an if / then / else statement where each has a select statement with the same projection but different where clauses.
SET FMTONLY ON; causes each to produce a result set where otherwise that would be impossible. It causes IF (1 = 0) to execute the condition code behind it which is also impossible otherwise. I shut it off and everything seems to work.