TArray Randomly getting Deallocated

Well that is what InsertScheduleItem does correct? I call that (function above) here:

#include "Warlock.h"
#include "Clerk.h"


AClerk::AClerk()
{

}

void AClerk::BeginPlay()
{
	Super::BeginPlay();

	citizen_class = CitizenClass::clerk;
	clerk_schedule = NewObject<ASchedule>();

	// basic clerk schedule
	InitSchedule();
}

void AClerk::InitSchedule()
{
	UScheduleItem* sleep = NewObject<UScheduleItem>();
	sleep->Init(0, 8, CitizenState::sleeping);
	UScheduleItem* eat1 = NewObject<UScheduleItem>();
	eat1->Init(8, 9, CitizenState::eating);
	UScheduleItem* work1 = NewObject<UScheduleItem>();
	work1->Init(9, 13, CitizenState::working);
	UScheduleItem* eat2 = NewObject<UScheduleItem>();
	eat2->Init(13, 14, CitizenState::eating);
	UScheduleItem* work2 = NewObject<UScheduleItem>();
	work2->Init(14, 18, CitizenState::working);
	UScheduleItem* eat3 = NewObject<UScheduleItem>();
	eat3->Init(18, 19, CitizenState::eating);
	UScheduleItem* work3 = NewObject<UScheduleItem>();
	work3->Init(19, 24, CitizenState::working);


	clerk_schedule->InsertScheduleItem(sleep);
	clerk_schedule->InsertScheduleItem(eat1);
	clerk_schedule->InsertScheduleItem(work1);
	clerk_schedule->InsertScheduleItem(eat2);
	clerk_schedule->InsertScheduleItem(work2);
	clerk_schedule->InsertScheduleItem(eat3);
	clerk_schedule->InsertScheduleItem(work3);

	clerk_schedule->PrintDebug();

}


CitizenState AClerk::RetrieveScheduleTask(int hour)
{
	return clerk_schedule->GetScheduleItemAt(hour)->task;
}

bool AClerk::IsInitialized()
{
	UE_LOG(LogTemp, Warning, TEXT("Size is: %d"), clerk_schedule->GetSize());

	return clerk_schedule->GetSize() > 0;
}