How is the difficulty of bitcoin mining propagated?
The difficulty is stored in the block in the Bits field. When any server receives a block, one of the things it does is check if the value in this field is correct. If it's not a block where the difficulty changes, it must have the same difficulty as the previous block. If it's a block where the difficulty changes, then it must have the correct difficulty according to the well known Bitcoin difficulty adjusting algorithm.

There is no "central bitcoin server".

Forks are resolved as follows:


Blocks that are invalid are ignored. Only block chains consisting entirely of valid blocks are considered.
The blockchain that would likely have taken the most effort to create (highest total difficulty) wins.