How can I find out what's denying permission to access a path?
Users should always be able to edit their own profile. The access callback used for "user/%user_category/edit" is user_edit_access(), which contains the following code:

return (($GLOBALS['user']-&gt;uid == $account-&gt;uid) || user_access('administer users')) &amp;&amp; $account-&gt;uid &gt; 0;


When the currently logged-in user tries to edit his/her account, the function returns TRUE, which means s/he has access to the edit form.

There could be a third-party module that altesr the access callback for that menu item, and which is using code that doesn't allow the currently logged-in user to edit his/her own account, or that doesn't consider such a case.