Here's what I do to learn new chord shapes relatively quickly:
I first get my fingers in the right position, one at a time, without even playing any notes. Once I feel I've got my fingers fretting properly in the right places, I strum the chord, very slowly, listening to each individual note. If a note buzzes, doesn't sound right, or doesn't sound at all, I reposition my fingers as necessary to get the note to play correctly, then strum through all the strings again, slowly. I repeat this process until I can remove my hand from the fretboard, replace it, and play through the chord cleanly, every time, feeling comfortable and confident that I'll play the chord correctly. Its only then that I move on to making music with that chord.
If I have two or more chords where the transition from one chord to another is tripping me up, I basically do the same thing. Fret the chord, strum through very slowly, then switch to the other chord, and strum through it slowly. The key here is that I don't worry about timing at all. I don't strum through the chord I've changed to until I feel I've got it right. Eventually, I step it up to make the change in tempo to a slow beat, and then finally work it up to the tempo I want it to be.
Its been my experience that the first part, learning a new chord and/or a new chord change takes the longest time. Once I've got it down cleanly, even if I can only make changes by pausing for a long time, the next part, getting faster, doesn't take that long at all. Its not unusual for me to have to "re-practice" a chord like a B7 sometimes, if I haven't used it in a while, just to clean it up a little.
Because this is physical learning, take lots of breaks. You'll likely progress faster if you do your practices in short stints, like 15 minutes, then take a break and then come back to it, than spending say, a solid 2 hours trying to master a chord.
Hope this helps!
Good Luck!