It doesn't look like you have just two categories, looking at your queries.
From what I can, there are three categories, A, B and C.
There are 12 posts in categories A and B, and 5 in categories A and C, from what I can see from your queries and results.
You are also using category__and incorrectly, which may be the cause of the confusion.
Can you tell me what are the two category IDs you are searching for? I will post the queries after you mention them.
Edit: You probably need this:
$posts_a = new WP_Query(array('category__and'=>array(5,30),'posts_per_page'=>-1));
$count_a = $posts_a->post_count;
$posts_b = new WP_Query(array('category__and'=>array(5,29),'posts_per_page'=>-1));
$count_b = $posts_b->post_count;
$posts_all = new WP_Query('cat=5&posts_per_page=-1');
$count_all = $posts_all->post_count;
Also, this is probably an obvious answer and I don't know your category structure, but is 29 a child category of 30?