I don't know about the differences, but:
"If you want your code to be well-behaved dotLRN code, the portlet addition should be done from within a dotLRN applet (Ben Adida, Openforce; https://openacs.org/forums/message-view?message_id=58622 )."
Verify that your package is in dotlrn_applets and portal_datasources and both service contracts are added (search for AcsSc on http://yoursystem/api-doc). Restart the server and watch the logs.