Y<-cbind(gdpg)
X<-cbind(iq,rpi,gcg,gfc,se,anet,rec,fi,gdp,netb)
# Set data as panel data
pdata <- plm.data(Regression_DATA_Final_, indexes = c("id","t"))
#Descriptive Statistics
summary(Y)
summary(X)
# pooled OLS estimator
pooling<- plm(Y ~ X, data = pdata, model = "pooling")
summary(pooling)
# between estimator
between <- plm(Y ~ X, data = pdata, model = "between")
summary(between)
#First differences estimator
firstdiff <- plm(Y ~ X, data = pdata, model = "fd")
summary(firstdiff)
# Fixed effects or within estimator
fixed <- plm(gdpg ~ iq,rpi,gcg,gfc,se,anet,rec,fi,gdp, data =Regression_DATA_Final_, model = "within",index = c("id","t"))
summary(fixed)

often errors are caused by mismatch between data used and the code.
We can't run your code and examine it without the data (or a small example sample of your data).
Can you think about reducing your input data by sampling, and then sharing the result by using the dput() function to get a copy and pasteable representation ?
(sometimes factors with many levels can be an issue, but otherwise this tends to work well)