Yes, it is perfectly valid to conduct a Pearson's correlation between variables with different scales. The correlation coefficient is a standardized measure, so it is not influenced by scale.
Here is a small simulation I did. First, I generate data on 7, 9, and 5 point scales. Then, I calculate correlation coefficients between each pair of variables. Then I standardize the variables (so they are all on the same scale), and do the same correlation matrix. As you can see, the correlation matrices are the same.
> set.seed(1839) # set seed for replicability
> c1 <- sample(1:7, 100, TRUE) # generating 7 point scale
> c2 <- sample(1:9, 100, TRUE) # generating 9 point scale
> c3 <- sample(1:5, 100, TRUE) # generating 5 point scale
> data <- data.frame(c1, c2, c3) # making data frame with original scales
> cor(data) # correlation matrix with original scales
c1 c2 c3
c1 1.00000000 0.06659190 0.08941637
c2 0.06659190 1.00000000 0.02127672
c3 0.08941637 0.02127672 1.00000000
>
> Zdata <- data.frame(scale(c1), scale(c2), scale(c3)) # making data frame with z-scored variables
> # thus, this makes them all on the same scale
> cor(Zdata) # correlation matrix with z-scored variables
scale.c1. scale.c2. scale.c3.
scale.c1. 1.00000000 0.06659190 0.08941637
scale.c2. 0.06659190 1.00000000 0.02127672
scale.c3. 0.08941637 0.02127672 1.00000000