as Gnat said in order to make it MP compatible, although i don't know if it works on objects. But we use it on Our Leopard and our Camo net is now MP compatble.
The general idea is to use animations and type="hide", but let's get started of how you can achieve that.
1)create your model sign. imagene that the sign is let's say rectangle, the front face supposed to be the sign texture, select the 1st face, create a selection with the front face and name it face_1, after paste it in a new lod, change the texture path to an other sign texture, rename the selection as face_2, paste it back, it should be at exactly same position as the previus face, and in your working lod, you should have 2 selections face_1 and face_2 with different textures, repeat untill you have all the faces with their appropriate sign texture on them, and the relative selection names.
2)create a model.cfg file.
list all you face selection names here
"face_1,"face_2", list of all selection names here
list here all the selection names as classesfor the appropriate signs
ok now your p3d should be named exactly with the same name as the class in CfgModels example My_Sign
3)now, you should create a script and put it in the int of the config (I'm not sure if the objects use event handlers if not you should create mission scripts)
sample script for init. here from all the faces you want to leave only face_1 selection sign
_sign = _this;
_sign animate ["face_2",1];
_sign animate ["face_3",1];
list here all the selections faces that you don't want to be displayed, exclude only the one you want to be visible.
you can also use the vehicle's init.
put a sign on the editor, and name it biou, the in the init field of the sign write
biou animate["face_2",1];biou animate["face_3",1];....etc etc...
Thinks to remember.
1)by default the hide type is on, that means that if you don't use any script, all faces will be visible
I hope that helps.
this way you can beat MP setobjecttexture incompatibility, but again i don't know if it works for objects.