It's definitely on the server end it appears. Specifically MySQL. For example, the last one. Out of the 32.469 seconds it took for the page to load, 32.449 of that was spent on database queries.
Since you're on a shared server, you can definitely have up and downs on mysql query time depending on how busy it is, 30+ seconds is definitely bad however.
You might put in a question to your host to see how many people are actually on the specific mysql server you are using.