CreateUObject is only usable with UFUNCTIONS, which are inside UObjects (as names implies).
CreateRaw is usable with everything, though I guess intenstion is to use it only with raw C++.
As for CreateSP I honestly don’t know. I never used it.
For your slate example,you should use CreateRaw.