Windows DLL についての質問です。

DLLでクラスを定義します。
このクラスの実体化とポインタを返すCreate関数を作りエクスポート。
呼び出し側ではCreate関数をコールしてポインタを得る。
この方法で、何か問題は起こり得るでしょうか?
ちなみに、呼び出し側もDLLなので複数駆動される場合があります。
プラグインからプラグインを読み込むといったような感じ。
これが、どうもうまくいかない。。。

※仮に、呼び出し側を(甲)。呼び出され側を(乙)とします。

(甲)が1個の時は(乙)の利用も問題なく出来ます。
しかし、2個以上の(甲)が起動されると、先に起動していた
(甲)で使われていた(乙)達がおかしな動作をします。
2個目の(甲)で使われてる(乙)の値が、
1個目の(甲)の(乙)にも干渉しているというか、
よく分からない。競合しているのは確実なんだけど・・・

どなたかこの辺をご存知ではないでしょうか?