If VTP is not updating the VLANs correctly, check to make sure the MD5 digest on all VTP domain switches is the same. The MD5 digest is calculated using the revision number, domain name, and password to make sure the information in the VTP update can be trusted. I've seen issues where switches configured with the same domain and password, but the MD5 digest is not aligned until I update the VLAN database on the VTP server. This is typically caused by the local revision number being different between the switches. Making a VLAN change on the VTP server will send out a VTP update to all domain switches with the newest revision number so that the MD5 digests should align properly.
You can see the VTP md5 digest with a "show vtp status" command on each switch:
SW1(config)#do sh vtp statu
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 17
VTP Operating Mode : Server
VTP Domain Name : CISCO
VTP Pruning Mode : Enabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x09 0xF0 0xD7 0x82 0xB7 0x08 0x82 0xAA
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
Local updater ID is 155.1.7.7 on interface Vl7 (lowest numbered VLAN interface found)
SW2(config)#do sh vtp statu
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 17
VTP Operating Mode : Client
VTP Domain Name : CISCO
VTP Pruning Mode : Enabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x09 0xF0 0xD7 0x82 0xB7 0x08 0x82 0xAA
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00