More notes on a changed offering:
Sub blah()
Set pt = Range("A3").PivotTable 'note that cell A3 is any cell within the pivot table.
'pt is an object variable being the pivot table object and all its properties.
pt.ColumnGrand = False
Set Tablerange = pt.TableRange1 'Create a range variable called Tablerange being the entire table cell range less the Page fields (=Filters) (which you don't have anyway).
Set Destn1 = Tablerange.Offset(, Tablerange.Columns.Count + 3) 'create a range variable for where the first copying will end up.
'Offset uses Offset(no. of rows, no. of columns); the row section is left blank so there's no offset for rows, you could put a zero in instead)...
'.Columns.Count+3 means the copied data will leave 3 blank columns beyond the original pivot table.
'Destn1.Select 'enable this line so you can get a visual of where Destn1 is on the sheet when using keyboard F8 to step through the code line by line.
Destn1.Value = Tablerange.Value 'copy the values over.
pt.ColumnGrand = True
Set Destn2 = Destn1.Offset(Tablerange.Rows.Count + 3).Resize(, Tablerange.Columns.Count - 1) 'creates the range variable 3 rows below Destn1 (there's no column component in the Offset), but resize it to have one column fewer.
'UnitsColm = Application.Match("Sum of Units", Destn1.Rows(1), 0)
UnitsColm = Application.Match("Units", Destn1.Rows(1), 0) 'This just determines which column is going to be missed out; it looks for 'Units' in the first row of the first copied range.
'In case you don't have the same arrangement of columns as you have now:
If UnitsColm = Destn1.Columns.Count Then 'if the Units column is the last column
Set SourceRng = Destn1.Resize(, Destn1.Columns.Count - 1)
Else 'if the Units column isn't the last column
Set SourceRng = Union(Destn1.Resize(, UnitsColm - 1), Intersect(Destn1, Destn1.Offset(, UnitsColm)))
'SourceRng.Select 'enable this line for a visual of what's going to be copied.
End If
SourceRng.Copy 'copy to clipboard
Destn2.PasteSpecial Paste:=xlPasteValues 'paste values to Destn2.
Application.CutCopyMode = False 'lose the dotted line around the copied range.
For Each cll In Destn2.Columns(Destn2.Columns.Count).Cells 'take each cell in the last column of the newly copied data (assumes that the Total column is the last column).
If IsNumeric(cll.Value) And Len(cll.Value) > 0 And cll.Value < 0 Then cll.Value = cll.Value * -1 'if the value is numeric and not empty and less than 0 then multiply by -1 to flip from negative to positive.
Next cll
End Sub
re Point 1: Lines have been added to remove the grand total before copying and to reinstate it after copying has completed.
re Point 2: All that is already happening, except I've changed the line which flips values from negative to positive but now leaves positive numbers alone.
I'm not sure what you mean by ignoring 'Units' column - I've assumed you want just to miss it out rather than aggregate similar values to leave fewer rows (eg. Central|Andrews|Penci has three rows which could be aggregated to one row).
There may also be a Power Query solution.