The first thing to check is whether your shader is using tangents and binormals. If not then, if I recall correctly, you can speed up things enormously by using the donotgenerateextradata flag in the load effect command:
Quote: "LOAD EFFECT Filename, Effect Number, Texture Flag, DoNotGenerateExtraData"
Otherwise the only way I know of, to set different constants in DBPro for different objects using the same copy of a shader, is to store the object specific data in a texture and read that in the shader. That works because you can apply different textures to each object. A trifle awkward but it works. Not sure offhand whether that helps the speed issue.

Another solution would be to have an extra set of UV coordinates which contain the desired data - but that would be wasteful since the UV data would probably need to be the same for each vertex. Depends on what effect you are trying to achieve though.