How do I perform a regression on non-normal data which remain non-normal when transformed? I've got some data (158 cases) which was derived from a Likert scale answer to 21 questionnaire items. I really want/need to perform a regression analysis to see which items on the questionnaire predict the response to an overall item (satisfaction). The responses are not normally distributed (according to K-S tests) and I've transformed it in every way I can think of (inverse, log, log10, sqrt, squared) and it stubbornly refuses to be normally distributed.
The residual plot looks all over the place so I believe it really isn't legitimate to do a linear regression and pretend it's behaving normally (it's also not a Poisson distribution). I think this is because the answers are very closely clustered (mean is 3.91, 95% CI 3.88 to 3.95).
So, I am thinking I either need a new way of transforming my data or need some sort of non-parametric regression but I don't know of any that I can do in SPSS.
 A: First, OLS regression makes no assumptions about the data, it makes assumptions about the errors, as estimated by residuals.
Second, transforming data to make in fit a model is, in my opinion, the wrong approach. You want your model to fit your problem, not the other way round. In the old days, OLS regression was "the only game in town" because of slow computers, but that is no longer true.
Third, I don't use SPSS so I can't help there, but I'd be amazed if it didn't offer some forms of nonlinear regression.  Some possibilities are quantile regression, regression trees and robust regression.
Fourth, I am a bit worried about your statement: 

I really want/need to perform a regression analysis to see which items
  on the questionnaire predict the response to an overall item
  (satisfaction)

If the items were summed or somehow combined to make the overall scale, then regression is not the right approach at all. You probably want factor analysis. 
A: Rather than relying on a test for normality of the residuals, try assessing the normality with rational judgment. Normality tests do not tell you that your data is normal, only that it's not. But given that the data are a sample you can be quite certain they're not actually normal without a test. The requirement is approximately normal. The test can't tell you that. Tests also get very sensitive at large N's or more seriously, vary in sensitivity with N. Your N is in that range where sensitivity starts getting high. If you run the following simulation in R a number of times and look at the plots then you'll see that the normality test is saying "not normal" on a good number of normal distributions.
# set the plot area to show two plots side by side (make the window wide)
par(mfrow = c(1, 2)) 
n <- 158 # use the N we're concerned about

# Run this a few times to get an idea of what data from a 
# normal distribution should look like.
# especially note how variable the histograms look
y <- rnorm(n) # n numbers from normal distribution
# view the distribution
hist(y)
qqnorm(y);qqline(y)

# run this section several times to get an idea what data from a normal
# distribution that fails the normality test looks like
# the following code block generates random normal distributions until one 
# fails a normality test
p <- 1 # set p to a dummy value to start with
while(p >= 0.05) {
    y <- rnorm(n)
    p <- shapiro.test(y)$p.value }
# view the distribution that failed
hist(y)
qqnorm(y);qqline(y)

Hopefully, after going through the simulations you can see that a normality test can easily reject pretty normal looking data and that data from a normal distribution can look quite far from normal. If you want to see an extreme value of that try n <- 1000. The distributions will all look normal but still fail the test at about the same rate as lower N values. And conversely, with a low N distributions that pass the test can look very far from normal.
The standard residual plot in SPSS is not terribly useful for assessing normality. You can see outliers, the range, goodness of fit, and perhaps even leverage. But normality is difficult to derive from it. Try the following simulation comparing histograms, quantile-quantile normal plots, and residual plots.
par(mfrow = c(1, 3)) # making 3 graphs in a row now

y <- rnorm(n)
hist(y)
qqnorm(y); qqline(y)
plot(y); abline(h = 0)

It's extraordinarily difficult to tell normality, or much of anything, from the last plot and therefore not terribly diagnostic of normality.
In summary, it's generally recommended to not rely on normality tests but rather diagnostic plots of the residuals. Without those plots or the actual values in your question it's very hard for anyone to give you solid advice on what your data need in terms of analysis or transformation. To get the best help, provide the raw data.
A: You don't need to assume Normal distributions to do regression. Least squares regression is the BLUE estimator (Best Linear, Unbiased Estimator) regardless of the distributions. See the Gauss-Markov Theorem (e.g. wikipedia) A normal distribution is only used to show that the estimator is also the maximum likelihood estimator. It is a common misunderstanding that OLS somehow assumes normally distributed data. It does not. It is far more general.   
A: Broadly, there are two possible approaches to your problem: one which is well-justified from a theoretical perspective, but potentially impossible to implement in practice, while the other is more heuristic.
The theoretically optimal approach (which you probably won't actually be able to use, unfortunately) is to calculate a regression by reverting to direct application of the so-called method of maximum likelihood.  The connection between maximum likelihood estimation (which is really the antecedent and more fundamental mathematical concept) and ordinary least squares (OLS) regression (the usual approach, valid for the specific but extremely common case where the observation variables are all independently random and normally distributed) is described in many textbooks on statistics; one discussion that I particularly like is section 7.1 of "Statistical Data Analysis" by Glen Cowan.  In cases where your observation variables aren't normally distributed, but you do actually know or have a pretty strong hunch about what the correct mathematical description of the distribution should be, you simply avoid taking advantage of the OLS simplification, and revert to the more fundamental concept, maximum likelihood estimation.
In this case, since you don't appear to actually know the underlying distribution that governs your observation variables (i.e., the only thing known for sure is that it's definitely not Gaussian, but not what it actually is), the above approach won't work for you.  Usually, when OLS fails or returns a crazy result, it's because of too many outlier points.  The outlier points, which are what actually break the assumption of normally distributed observation variables, contribute way too much weight to the fit, because points in OLS are weighted by the squares of their deviation from the regression curve, and for the outliers, that deviation is large.  The usual heuristic approach in this case is to develop some tweak or modification to OLS which results in the contribution from the outlier points becoming de-emphasized or de-weighted, relative to the baseline OLS method.  Collectively, these are usually known as robust regression.  A list containing some examples of specific robust estimation techniques that you might want to try may be found here.
