There have been incidents, where the CM12 clients - not all, but some of them - cannot download all the Software Updates.

If you research on the logs, you may find similar lines like the following:

SetJobTimeoutOptions failed. Error = 0x87d00215       UpdatesHandler    
CBundledUpdate -- Failed to download update (########). Error =0x87d00215        UpdatesHandler 
CDeploymentJob -- Failed to download update (########). Error =0x87d00215        UpdatesHandler       
A user-defined service window(non-business hours) is available. We will attempt to install any scheduled updates.        UpdatesDeploymentAgent       
Attempting to install 0 updates        UpdatesDeploymentAgent     
No actionable updates for install task. No attempt required.        UpdatesDeploymentAgent        
Updates could not be installed at this time. Waiting for the next maintenance window.        UpdatesDeploymentAgent  
ICcmContentTransferManager::SetJobFlags failed with error 0x87d00215        ContentAccess    

In that case, t
he first thing to check, is to verify that the updates are actually in the deployment package that is available to the client.
(Maybe a good
idea is to Re-download the updates and add them to the existing Deployment Package > update the DPs...)
If yes, then you will need to restart the Windows Update service, on this machine and monitor the issue for some time.

If that is not enough, reboot the machine and monitor the issue again.

There is also a maximum runtime for each update and Service pack. If the installation takes longer that the specified time, ConfigMgr assumes
that the installation has failed. Select the updates in the deployment management and check its properties for this setting.
If needed, edit it (set it bigger)

Additionally you need to: Set the AV exclusions on the client (and server):  
http://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx

If that is not enough, then the solution is this:

1.       Start an elevated command prompt,and run wbemtest.exe
2.       Click Connect, and specify the path: root\ccm\SoftMgmtAgent and connect
3.       Select Query, and type select * from DownloadContentRequestEx2
4.        Select query, and select * from downloadinfoex2
5.       Delete each instance that returned by the query.
6.       Restart SMS Agent Host service, and check to confirm the instances didn’t come back.
7.       Trigger Software update evaluation cycle and try to install update again

If the above are successful and the updates are installing now on the client, it looks like the download jobs were struck in queue..

[DownloadContentRequestEx2 and downloadinfoex2, are 2 classes related to pending/incomplete downloads]