So I have this offer I was able to get going on "Site A" (large tube site) for a decent ROI (25-30%).
So then I take this winning funnel/offer combo to "Site B" and it tanks (- 20% ROI). However when I swap out a different offer for whatever reason it does better.
These offers are both adult dating SOI offers in the same GEO, except one is a "Milf" type offer, and the other is a more "general dating" type offer.
So in a scenario like this, we just run both offers? (ie offer 1 on site A, offer 2 on site B)
Usually I can port a winning campaign to other sources and have it respond ok, however Im in this situation where I ported this campaign over and it performs drastically differently.
I dont know, is this common? lol
Perhaps test a bit more on "Site B", could be bad timing, or just a bad pool of audience. Otherwise it might be that "Site A" fits better for MIlFS than "Site B"?
Especially in adult niches (in this case milfs) are much stronger than "general" stuff. I guess it's the offer/niche.
Think about it in this way - it's a bit generic, but fits your case:
You're running Gay Offer #1 on gaytube.com and making good money. You port this offer to straighttube.com and it tanks - reason is the different demographic 
This is a bit generic since the funnel is same, but could be one of the reasons.
More possible reasons:
- the offer was promoted heavily on Tube B already months ago, userbase is getting saturated ( assuming it's not just a different offerpage from the advertiser )
- like stickupkid said, Tube B might just not fit the MILF angle - again imagine promoting the MILF angle on a tenny style tube
With you saying the generic offer does perform in Tube B, the quality seems not to be that much of an issue on B. I'd split test both offers for 24h to see if your initial observation is right.
If it is, easy choice, run MILF on A and generic on B.
Different offers performing differently on sources is pretty normal, sometimes it makes no sense, but it's just one of these mysterious things in AM. You'll have the same happening in mainstream too with some leadgen / sweepstakes campaigns killing it on source A and tanking on source B - hense split testing across many sources is always the best way, especially if the funnel is proven, switching the offers is usually a good thing to do additionaly than just calling it a test after the original setup failed.