Ok, here's how I'm doing it so that I have IPTV channels supplementing my local cable card and OTA HDHomerun Sources. It's a bit more complex than it needs to be, but, my IP channels play well in Channels and I'm getting the right guide data for them.
I use xTeVe with the M3U from my IPTV provider and an XMLTV file I generate with zap2xml. (I also have my HDHomeruns registered with xTeVe because I like to use a player like xciptv on some of my clients to allow me to watch multiple streams at once on one tv and for that purpose I just connect directly to xciptv.
For channels, I tried first running a second instance of xTeVe (on a different port) where I filtered down the IPTV channels a good bit. Both via this second instance, or directly from the first instance, Channels happily picked up the URL as if it was an HD Homerun and allowed me to assign a guide to all of the channels. I thought I was in business but when I went to play these channels, I got the Channels "Playback failed" message.
That led me to Telly (which also allows me to filter to specific m3u groups) which handles the redirect calls properly and the streams work properly in Channels (really, really well actually!). The issue I ran into here is that Telly will not parse the XMLTV file that xTeVe produces - it complains about any null tags for programs, so, my Telly instance had no guide. I tried to click the pencil after registering the Telly instance with Channels, and was able to pick my zip code and provider to map the channels, but like many have explained, this doesn't "stick" - Channels simply is expecting this source to have it's own EPG source.
So the result there is the Telly channels show up in Channels, they play in Channels clients, but they won't grab guide data so they just show up blank in the guide.
Then I went ahead and added BOTH the telly source AND the xTeVe source to Channels. I put telly as a higher priority device. This works because Channels lets you map channels to the xTeVe source, and will pull their guide data. Unless you try to use more tuners than are supported by the Telly source, you don't end up actually trying to call the xTeVe source (which will fail).
So, have this workaround right now - sure would be easier if you could just map channels to a Telly source, or, if Channels could just handle the way xTeVe redirects.