Selecting last sprint from Closed Sprint list

I am able to get a list of Closed sprints per Board/Project, but need to be able to select only the most recently closed Sprint for each.

You need to generate an aggregation for it with the option of “Define new calculated member”
You can see the link inside the “Sprint” Dimension:

Add the name you want and the code of:

Aggregate(
  Generate(
  -- get all boards
    [Sprint].[Board].Members,
    -- access all children - sprints from the board and get the last closed
    Tail(
      Filter(
      [Sprint].CurrentMember.Children,
      [Sprint].CurrentMember.GetBoolean("Closed")),
      -- 1 last (from Tail) closed sprint from a board
      1)
      -- address the first (0) member from a set
      .Item(0)
  )
)