Thank you for the response Lord. GetDlgItem+EnableWindow works on every other page but for custom pages for me. Here is how my code looks (I removed some unnecessary information but it should give you a basic idea):
#############################################################
Page custom PreReqPage CheckPreReqs
###############################################################################
Function DisableNextButton
#1 - Next, 2 - Cancel, 3 - Back
GetDlgItem $0 $HWNDPARENT 1 #1 for 'Next' button
EnableWindow $0 0
FunctionEnd
###############################################################################
Function EnableNextButton
#1 - Next, 2 - Cancel, 3 - Back
GetDlgItem $0 $HWNDPARENT 1 #1 for 'Next' button
EnableWindow $0 1
FunctionEnd
###############################################################################
Function PreReqPage
Call ValidatePreReqs
Pop $0
strcpy $PreReqPass $0
${If} $PreReqPass == "1"
abort
${EndIf}
Call HideBackButton
nsDialogs::Create /NOUNLOAD 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 100% ""
Pop $Label
!insertmacro MUI_HEADER_TEXT "Prerequisites Check" "Checking Prerequisites"
nsDialogs::Show
FunctionEnd
###############################################################################
Function CheckPreReqs
Call DisableNextButton
Call ValidatePreReqs
Pop $0
strcpy $PreReqPass $0
${If} $PreReqPass == "-1"
Call EnableNextButton
abort
${EndIf}
Call EnableNextButton
FunctionEnd
###############################################################################
#############################################################
Page custom PreReqPage CheckPreReqs
###############################################################################
Function DisableNextButton
#1 - Next, 2 - Cancel, 3 - Back
GetDlgItem $0 $HWNDPARENT 1 #1 for 'Next' button
EnableWindow $0 0
FunctionEnd
###############################################################################
Function EnableNextButton
#1 - Next, 2 - Cancel, 3 - Back
GetDlgItem $0 $HWNDPARENT 1 #1 for 'Next' button
EnableWindow $0 1
FunctionEnd
###############################################################################
Function PreReqPage
Call ValidatePreReqs
Pop $0
strcpy $PreReqPass $0
${If} $PreReqPass == "1"
abort
${EndIf}
Call HideBackButton
nsDialogs::Create /NOUNLOAD 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 100% ""
Pop $Label
!insertmacro MUI_HEADER_TEXT "Prerequisites Check" "Checking Prerequisites"
nsDialogs::Show
FunctionEnd
###############################################################################
Function CheckPreReqs
Call DisableNextButton
Call ValidatePreReqs
Pop $0
strcpy $PreReqPass $0
${If} $PreReqPass == "-1"
Call EnableNextButton
abort
${EndIf}
Call EnableNextButton
FunctionEnd
###############################################################################