You probably just need to call Get on your TSubobjectPtr.
virtual class UPawnMovementComponent* GetMovementComponent() const OVERRIDE { return ShmupPawnMovement.Get(); }
EDIT: Actually, TSubobjectPtr has a cast operator to the wrapped type, so it’s probably not that. It’s probably missing the type declaration like DarthB suggested.