If a base class function returns its own class as a literal value, the nativization process will emit the literal term as "GetClass()" rather than as the actual value (e.g. UBPBase::StaticClass()). If the base class function is then called from a child class, this will result in incorrectly returning a value that equates to the child class rather than the base class.
Suggested workaround: Override the function in the child class and return the base class by value (i.e. duplicate the base class implementation in the child class).
There's no existing public thread on this issue, so head over to AnswerHub just mention UE-92505 in the post.