SharePoint Designer Check-in and Check-out and Publishing
Maybe I'm missing a hotfix or something, but SharePoint Designer seems to have a lot of problems with Check-ins and Check-outs. Often it shows a file as checked out when it is actually checked in and vice versa. Sometimes closing SD and opening the site again clears this up, but as a general practice, I do a lot of check-ins and check-outs in the browser and not in SD.
Mostly I'm talking about Master Pages and Layout Pages - which you can check-in and check-out in your browser by navigating to the Master Pages Gallery found under Site Settings > Galleries > Master pages and page layouts
Also, I typically use the Publish Selected Files functionality to promote new Master Pages and Page Layouts from Dev to Production, but note that you have to check out the files on both servers. The easiest and most effective way to do this again is in the browser by navigating to the respective Galleries on each farm and checking them out in the browser.
For instance, you go to the Master pages and layouts Gallery on production and check-out your custom master page, and you go to the Master pages and layouts Gallery on development and you check-out your custom master page, and then on Dev in SharePoint Designer you right click on your custom master page and select Publish Selected Files (and enter the url for your production site if you haven't already).
Note that after you Publish your new versions, they are only minor versions, and you can view them on production without endangering the site for other users. Once you confirm that they are working and doing what you want, then you can Check them in as a Full version on production. Remember also then to Undo Checkout on Dev. You only checked it out to publish it, so just Undo Checkout so that you don't have a new insignificant version.
To review - after Publishing, on Production after checking them as a Minro Version you check in and approve a Major Version, and then on Development you Undo Checkout.
A little complicated, but it works consistently.