"properties" in psake is actually a function that takes a script block. The actual storage of the properties is in a context, which allows us to nest calls to psake. (e.g. psake can call itself to execute nested builds without stomping all over itself.) To get at the properties in the current context, you would need to do something like this:
$properties = $psake.context.Peek().properties
This is internal implementation details and not something you should rely on. It would be useful to create a Write-Properties function to dump out this information. Patches always welcome.