UE4 Crashes: MallocBinned Class Dangling Pointer(Seemingly) Problem

Allright, it seems there are two bugs here. One originates from unreal and happens when a widget animation is stopped and played while the widgets visibility is changed constantly a lot of times. But i will leave that for some other time.

Now, back to this bug;

 Exception thrown: read access violation.
 **BasePtrOfNode** was 0xFFFFFFFFFFFFFFFF.

It seems to me like a bug caused from my wrong usage of unreal garbage collector. So i will ask some questions:

Which one is correct;

TSharedPtr<FInteractiveProcess> CEProcess; ///< This one, as far as i know

    UPROPERTY()
TSharedPtr<FInteractiveProcess> CEProcess;

Which one is correct;

TWeakObjectPtr<SomeClass> Something; ///< This one, as far as i know

UPROPERTY()
TWeakObjectPtr<SomeClass> Something;

Do we need to make FStrings UPROPERTY() for GC to work properly?
Do we need to make a TArray<> UPROPERTY() for GC to work properly?