I'd be curious if you put (or already have) Dynamics GP on the SQL Server itself, is this PO preview faster or still taking close to 30 minutes?
If it is faster, than that would point to some type of networking issue between the original GP machines and SQL Server.
If not any faster, a dexsql.log recreating this performance issue is what we would generally look at next, so we can see what calls are causing it to take 30 minutes, then focus on those as to why.
Ideally, we'd want to get the dexsql.log without all other users logged into the GP instance we're running the log from, that way we only capture information specific to the PO Preview.
I'd start with that and go from there.
Thanks