Well lets go back to the original question:
But I created a new VLAN 25 in my ESXi and added two VMs in that ESXi. The communication between these two VMs is perfect.
My question is, what should I do if I need these 2 VMs to communicate to a VM hosted in another ESXi with VLAN 25?
If you only want your VM's in VLAN 25 on HOST A to talk to other VM's in VLAN 25 in HOST B you will need to set it up like the attached picture:

Your psyhical switch needs the VLAN tagged on the ports so it knows how to route the traffic. Now I'm assuming your default VLAN on all your switchs is 1 as that is pretty standard. VLAN 1 also gets passed reguardless so you will probably only have to tag the ports with VLAN 25. Once the ports are all tagged with that VLAN they will be able to talk successfully. Right now what is happening is your 2 VM's in the vSwitch can talk becuase they are both on the same vSwitch with the VLAN tagged on it, however when you try to talk to another VM on another host the packet gets to your psyhical switch and doesn't see a tag on that port so it drops it. The only ports you would have to add that VLAN tag to are the ones your psyhical nics on the host with that vSS are plugged into.
I hope this has helped or made things more clear