各オブジェクトのそれぞれのスクリプトで行っていることが良く分からないのですが、

Scene1
 objA-A.cs:DontDestory
  ボタン→LoadScene("Scene1")
 objC-C.cs:DontDestory

Scene2
 objA-A.cs:DontDestory(Scene1から)
  メソッド@→A = Find("objB") →NG
 objC-C.cs:DontDestory(Scene1から)
  Aのメソッド@→A = Find("objB") →OK
 objB-B.cs
  ボタン→Aのメソッド@→A = Find("objB") →OK

こういうことなのでしょうか??

A = Find("objB")は、
GameObject A = GameObject.Find("objB");のことです

メソッド@を呼ぶタイミングはどうやって遷移後に指定しているのでしょうか?
まさか、LoadScene("Scene1")と同じフレーム内で呼んでいないですよね??