Care to share that script so that we might see where changes may be needed?
....Other validation rules...
If [Purchase_Request::Billable to Client = "Yes" and Purchase_Request_Items::Instance = ""]
Show Custom Dialog ["Error"; "Each line item is billable and requires and instance."]
Exit Script 
...Other validation rules...
If Purchase_Request is your related table referenced by your portal, this code will only reference the values in the first such related record. Values in any additional related portal records will not be referenced in this If step.
You'd need to loop through these records (or the rows of your portal) to check them one at a time, or look at the values in aggregate, such as using the List and FilterValues functions. I can't quite spell out the details for you as I do not know if you want this error message to appear if any row with "Billable..." = to "Yes" and Instance empty is true or only if all the records in the portal meet this criteria.
Purchase_Request is the main Table in use on this layout. Purchase_Request_Items is the related table that is in use in the portal.
Billable = Yes is a radio button that applies to the entire Purchase_Request layout, so when Billable = Yes, each line item in related table Purchase_Request_Items will require Purchase_Request_Items::Instance, otherwise it prompts the user to fix the issue and exits the script.
The same rules apply in that case. Purchase_Request_Items::Instance = "" will only reference the first portal records unless you eitehr loop through them one at a time or examine the values in aggregate (as a set of values).
ValueCount ( List ( Purchase_Request_Items::Instance ) ) = count ( Purchase_Request_Items::ForeignKeyFieldHere )
Will not be true if the Instance field is empty for any record in the portal. (This assumes an unfiltered portal as these calculations ignore portal filters.)
Excellent. I did the following and it works perfectly.
If [Purchase_Request::Billable to Client = "Yes"]
If [ValueCount ( List ( Purchase_Request_Items::Instance ) ) = Count ( Purchase_Request_Items::pr_docKey )]
Show Custom Dialog [ Error ]
Exit Script