Your first calculations (for a single run) are correct, given that you see everyone's burn cards as well as their hole cards.
Your second calculation is also valid, under the same assumption.
The difficulty comes when you start talking about "a set or better". You can calculate the odds of a flush, but some boards will give you a set and a flush, so you can't just add the two probabilities together or you'll double-count those boards.
For flush odds specifically: you will need to treat the two runs separately, and sum over all cases for the first run (because this will affect the number of 'outs' for the second). You'll also need to consider that you could hit a flush in either suit.
To start you off: suppose you hold one heart and you can see another four hearts in other people's hole cards/burn cards. Then there are eight hearts out of 28 cards remaining, and you need (at least) four of them on the board for a heart flush.
The odds of selecting four hearts followed by a non-heart are:
(8/28) * (7/27) * (6/26) * (5/25) * (20/24)
But the non-heart card can be in any of the five positions, so you need to multiply this by 5 to get the odds of 'four to a flush' in hearts on the board, which gives 0.0142 (i.e. 1.42%).
You would need to add to this the odds of a 'flush on the board' - a similar calculation, except with (4/24)
instead of (20/24)
and without multiplying by 5 (since all positions are taken by hearts), which gives just 0.00057 or 0.057%.
So the probability of hitting a flush (or possibly a straight flush) by the river on the first run with a pocket pair using your first suit is around 1.48%.
Then you would need to calculate the odds of hitting a flush with your other card (which will be different if the number of cards remaining in your second suit is different).
Then you would need to iterate the other cases: namely, three or fewer of each of your suits on the first board. So if you have a heart and a spade, the board could have three hearts and two spades, or one heart and three spades, or no hearts and no spades, etc. You'd need to calculate the odds of each, based on the 24 cards you can already see.
For each of those cases (there are 15, I think - 4*4 minus one, because three hearts and three spades on the same board isn't possible) you'll have a different number of 'outs' for each suit for the second run. You'll then need to calculate two probabilities:
- the probability that the case exists to start with (for example, the odds of two hearts and a spade on the first run)
- the probability that, in this case (out of the fifteen), you hit a flush on the second run (using a method similar to the one above)
You can then multiply the two together to get the chance of hitting a flush for each case on the second run. The 15 cases are all distinct, so you can sum the probabilities to find the total probability of hitting a flush on the second run (but not the first) You can then add this to the probability of hitting a flush on the first run to get the overall probability of hitting a flush.
Clearly this would be long and laborious but I don't believe there is a simpler way - it's a complex problem! It might also not be very meaningful: after all, if you hit a flush with a pocket pair in an 8-way pot then your flush is unlikely to be good...
And again, these probabilities aren't exclusive: if you hit a set, you could also have a straight, a flush, a full house (etc) at the same time. To calculate an exact probability you would need to define your question very clearly, but the mathematical solution would be very complicated indeed.
(If you're just after the answer rather than a mathematical method, I would suggest setting up a Monte Carlo simulation or similar to calculate the odds for a large but manageable number of random run-outs, but you would still need to define your question very clearly.)