Just to double check, the parent calls the subreport, the subreport sets a variable for the date, the parent then checks the variable and prints true or false?
What I would suspect first, if the dates are the same and the flag is false, is that the order is wrong. I would add a details section below the subreport and have the formula check then. This way, the subreport has completed being read. If it is still incorrect. I would look at the subreport, are all the values the same or are there values that are being suppressed, these values can still influence the formula, and set the date returned to false.
Also, I would write a formula that displays what the value the subreport is returning to the main report so that you 'know'/can see it, it may be that your logic is off, and this will save lots of hair pullling when you swear the report SHOULD work.
HTH