There is no rule against bidding on competitor brands. However, you may not be able to use that keyword in your ads. This depends on whether the brand owner has told Google they do not wish their brand name to appear in ads, unless they give consent. In your example, it is likely that McDonald's has done so and Burger King would not be allowed to use McDonald's in their ads.
Whether that's the case or not, it poses some problems. If you can't use the brand in your ads, it makes it difficult to attract a searcher and click your ad. This greatly affects your QS since a vast majority of QS is based on click rate. If you can have the brand in your ads, as a competitor, you are giving focus on your competitor, unless you can somehow turn it into a positive for you. Not easy, especially since the searcher is probably already sold on your competitor, that's why they searched for them. Again, if they are sold on them, this will affect your click rate negatively and thus your QS not to mention conversion rates for those who do click. Not saying you can't or shouldn't do it, just that it might be very difficult.
As for your second issue, you don't provide enough info. Not working how exactly? All I can say is, make sure you typed it in correctly (never type it, copy and paste URL). I see this once in a while too. The URL is correct, just Adwords doesn't for some reason in which case I resubmit the ad. A pain but what can you do?
A potential "fix" is submitting new ads when your site is least busy, which is typically after business hours. I have a client where this seems to happen all too often, seems when uploading hundreds of ads using the Editor. It could be that their server, if they have many visitors at the same time as the upload, is too slow and Adwords gives up checking the URL. It shouldn't happen and just a theory.