Why is this forward declaration not working for TSubclassOf?

This .h file:
#pragma once
#include “VRExplorer.h”
#include “Components/SceneComponent.h”
#include “SimpleInventoryAllignComponent.generated.h”

class USimpleInventoryItemType;

UCLASS(Blueprintable, ClassGroup=(Item), meta=(BlueprintSpawnableComponent) )
class VREXPLORER_API USimpleInventoryAllignComponent : public USceneComponent
{
	GENERATED_BODY()

public:	
	// Sets default values for this component's properties
	USimpleInventoryAllignComponent();

	// Called when the game starts
	virtual void BeginPlay() override;

	UFUNCTION(BlueprintCallable, Category = SimpleInventory)
	USimpleInventoryItemType* GetItemType() const;

protected:
	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = SimpleInventory)
	TSubclassOf<USimpleInventoryItemType> ItemType;
	
};

Is producing the following errors when I compile:

2>d:\unreal engine\4.14\engine\source\runtime\coreuobject\public\Templates/SubclassOf.h(107): error C2027: use of undefined type 'USimpleInventoryItemType'
2>  d:\vrexplorer\source\vrexplorer\SimpleInventoryAllignComponent.h(8): note: see declaration of 'USimpleInventoryItemType'
2>  d:\unreal engine\4.14\engine\source\runtime\coreuobject\public\Templates/SubclassOf.h(106): note: while compiling class template member function 'UClass *TSubclassOf<USimpleInventoryItemType>::operator *(void) const'
2>  d:\unreal engine\4.14\engine\source\runtime\coreuobject\public\Templates/SubclassOf.h(82): note: see reference to function template instantiation 'UClass *TSubclassOf<USimpleInventoryItemType>::operator *(void) const' being compiled
2>  d:\vrexplorer\source\vrexplorer\SimpleInventoryAllignComponent.h(27): note: see reference to class template instantiation 'TSubclassOf<USimpleInventoryItemType>' being compiled
2>d:\unreal engine\4.14\engine\source\runtime\coreuobject\public\Templates/SubclassOf.h(107): error C3861: 'StaticClass': identifier not found

If I comment out the line TSubclassOf ItemType; line, or if I #include SimpleInventoryItemType.h, the errors all go away. So it’s a straightforward issue of the compiler not seeming to recognize that I forward-declared USimpleInventoryItemType, despite it, in the error, referencing the line on which I declared it. Obviously I don’t want to actually include SimpleInventoryItemType.h in this file, because of future circular dependencies.

I have other places in this project where this is working just fine. I don’t see any significant differences between this instance and the others, other than just class names. But for some reason, this one time, it’s blowing up.

Does anyone have any idea what might be causing this? Could it be the class names? (Maybe the forward declaration is always failing, but in the other case, it’s compiling the files in the opposite order due to compiling them in alphabetical order, or something?)