Well, if it's any consolation, you're doing everything right. Your array reference to header_props is getting passed nicely, and prints two cookies when CGI::App->run is called. (At least for me it does, from a command-line) I don't have a real fix for you, but I am interested in the results of the following: Try connecting to the script using a telnet client, so you can see what's really being sent to the browser.
telnet localhost 80
GET /cgi-bin/script.pl HTTP/1.0
Press enter twice. Should return two lines starting with "Set-Cookie: "
HTTP/1.0 200 OK
Content-Length: 2322
Connection: Close
Server: GWS/2.0
Date: Sun, 28 Jul 2002 02:57:06 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: cookie1=foobar; path=/
Set-Cookie: cookie2=helloagain; path=/
...
cheers!