If the vehicle is initialized as a variable (i.e. vehName = this in init field instead of vehName in "name" field) and the vehicle respawn script uses that variable name, you can publicVariable the variable name upon respawn to propagate the change to all clients.
Preserving vehicle names after respawn is tricky, because createVehicle can only be called on the server or problems arise.
The reason for not using the classic "name" for the vehicle is that a named vehicle can't be publicVariabled (it will return an error about the variable being reserved).
To propagate the names of helicopters after respawn in one of my missions, I created an array of code strings and passed the number of the proper array element to vrespawn. The code array looks kind of like this:
codeArray = [{veh1 = _newVeh; publicVariable "veh1"},{veh2 = _newVeh; publicVariable "veh2"}]
and would be called like this:
call (codeArray select _index)
from the script.
Let me know if you need more help.