If your answer to my question (above) is “Yes”, here’s the information you require:
Update:
If you want C++ to return a value to blueprints then you just want to use the BlueprintCallable specifier.
Returning a reference is done by using standard C++ syntax (the ‘&’ token). You can search the web for more info on C++ references.
Still shaky on what you want, but if all you want to do is implement a variable in BP and the C++ base class has access to it then you should just use UPROPERTY with the appropriate (i.e. BlueprintXXX) specifier(s). You declare it in C++ and assign it the reference to an object from within the BP.